如何在mysql中添加列值

时间:2012-09-12 11:25:49

标签: mysql sql logic sum

这是我的表数据Student

enter image description here

这是我的查询 -

SELECT id, SUM( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`

但它正在抛出一行 -

id  total   maths   chemistry   physics
118     760     55  67  55

虽然我想为所有ID申请总额....让我知道如何实现这一目标?

7 个答案:

答案 0 :(得分:63)

Sum是一个聚合函数。你不需要使用它。这是简单的查询 -

select *,(maths + chemistry + physics ) AS total FROM `student`

答案 1 :(得分:10)

如果您要求获得每个学生的总分,那么SUM就不是您需要的。

SELECT id,
    (maths+chemistry+physics) AS total,
    maths,
    chemistry,
    physics
FROM `student`

将完成这项工作。

答案 2 :(得分:8)

此操作不需要使用SUM。试试这个问题:

SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`

答案 3 :(得分:5)

提示:如果其中一个字段可能为NULL,则使用COALESCE将这些字段默认为0,否则total将导致NULL。

SELECT *, (
    COALESCE(maths, 0) +
    COALESCE(chemistry, 0) +
    COALESCE(physics, 0)
) AS total 
FROM `student`

答案 4 :(得分:0)

所有聚合函数都适用于由rowname指定的行和按操作分组。您需要对各行进行操作,这不是任何聚合函数的选项。

答案 5 :(得分:0)

尝试一下

SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`

您完成了。谢谢

答案 6 :(得分:0)

MySQL中的sum函数在某种意义上起作用,它为您提供了select语句的一列中的值之和。如果您需要对查询中的一行中的值求和,则只需使用加号(+),您需要的是此查询:

SELECT id, (`maths` +`chemistry`+`physics`) AS `total`, `maths`, `chemistry`, `physics`
FROM `student`;

这将为您提供所需的结果。