在sql中排成一行

时间:2013-01-28 12:07:54

标签: mysql sql

我想将Punten1,Punten 2,Punten 3,Punten4的值加总。 但我只知道如何对列中的值求和。但不是排在一排。 有谁知道如何做到这一点。

SELECT Punten1, Punten2, Punten3, Punten4
Punten1 + Punten 2 + Punten3 + Punten4 as Puntentotaal
FROM puntentotaal

所以我想在一个新专栏中总结Punten1,Punten 2,Punten 3,Punten4的值:puntentotaal 谢谢!

2 个答案:

答案 0 :(得分:4)

SELECT Punten1, Punten2, Punten3, Punten4, 
Punten1 + Punten2 + Punten3 + Punten4 as Puntentotaal
FROM puntentotaal;

只是一个额外的逗号。 我假设您的表作为列的唯一ID。

UPDATE puntentotaal AS t1 INNER JOIN puntentotaal AS t2 SET t1.Puntentotaal = 
(t2.Punten1 + t2.Punten2 + t2.Punten3 + t2.Punten4) where t1.ID = t2.ID;

这将更新所有行中Puntentotaal栏中的Punten1,Punten 2,Punten 3,Punten4的总和。

答案 1 :(得分:0)

您的问题标题为“行间总和”,但您要实现的目标是跨列总结。

如果您正在寻找“行间总和”,则有一个名为 SUM(field_name)的函数,它将为您选择的所有行的特定字段的总和,您可以将此函数与GROUP BY一起使用

如果您正在寻找“与列相加”,您正在使用+符号进行操作,只需根据@paul建议添加逗号。