对表中的所有列执行求和,平均和乘法运算?

时间:2009-05-21 14:48:46

标签: mysql

我有一个看起来像这样的表:

id    test1    test2    test3    test4 ... test200
1      90       87       85        86        70
2      100      95       83        92        80
.
.
18000

我知道有一些标准操作可以对单个列执行求和和平均值,并将两列的值相乘,但是是否可以在具有给定id的行中的所有列上执行此操作?如果不清楚,我想跨行而不是跨列执行this之类的操作。感谢

3 个答案:

答案 0 :(得分:6)

您可能最好重新设计表格,使其没有200列。

e.g。

Id  testnum  score
1    1        90
1    2        87
...
2    1        100
2    2        95
...
180000

现在你可以这样做一个查询:

select sum(score) as totalscore
from mynewtable
where id=1

答案 1 :(得分:2)

怎么样:

select id, sum(test1 + test2 + ...) as summation
group by id

问题是你有这么多列吗?此解决方案无法顺利处理多个列。

答案 2 :(得分:0)

可能有一些扭曲的SQL处理整行的内容(我怀疑),但你仍然需要指定列名,否则你的计算中会包含ID号。