这是我的表数据Student
这是我的查询 -
SELECT id, SUM( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
但它正在抛出一行 -
id total maths chemistry physics
118 760 55 67 55
虽然我想为所有ID申请总额....让我知道如何实现这一目标?
答案 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`;
这将为您提供所需的结果。