使用平均计算更新列

时间:2013-02-08 11:44:21

标签: mysql

原始属性表船(bID,名称,长度,颜色)

然后我创建一个名为relLength ant的新属性我需要写句子,我将使用以下公式更新我的列(设置为0 nowstrong text):

relLength =长度/平均长度。

我在这个名为boat的表中有这个属性:bID,name,length,color,relLength(这是创建的)

这是我写的,但不起作用

UPDATE boat
SET relLength = length/  (SELECT AVG(length) FROM boat)

(平均值为38.75)

其他练习即将创建视图。我需要获取原始表(没有relLengt内部)并创建视图,我在其中创建此(relLength)属性并仅在视图表中填充先前的公式而不是表。

感谢您的帮助。 :)

3 个答案:

答案 0 :(得分:0)

尝试以下方法:

update boat b, (select avg(length) avg_len from boat) v
set
  b.rellength = v.avg_len

答案 1 :(得分:0)

非常感谢。

几乎我一直在寻找的东西。只需一次小修正(长度 /v.avg_len在最后一行)

这对我来说现在有用了:

update boat b, (select avg(length) avg_len from boat) v
set
  b.rellength = length / v.avg_len

任何人都可以创建视图吗?我需要从原始表格船(bID,名称,legth,颜色)创建视图并创建列rellength(就像我使用alter table执行此操作...)并且计算类似于上面所写的(原始的reltribute长度不存在) tabel,仅在视图中,a具有此属性:bID,name,legth,color, rellength !)

再次感谢:))

答案 2 :(得分:0)

我确实找到了解决方案。

CREATE OR REPLACE VIEW newBoat
AS SELECT b.bid, b.name, b.length, b.color, b.length/(
                            select avg(length) 
                            from boat b) as relLengt
FROM boat b;