这是我的表格数据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 应用 sum ....让我知道如何实现这一点?
Sum 是一个聚合函数。你不需要使用它。这是简单的查询 -
select *,(maths + chemistry + physics ) AS total FROM `student`
提示:如果其中一个字段有可能为 NULL,则使用COALESCE将这些字段默认为 0,否则total
将导致 NULL。
SELECT *, (
COALESCE(maths, 0) +
COALESCE(chemistry, 0) +
COALESCE(physics, 0)
) AS total
FROM `student`
如果您要求获得每个学生的总分,那么SUM
这不是您所需要的。
SELECT id,
(maths+chemistry+physics) AS total,
maths,
chemistry,
physics
FROM `student`
会很好地完成这项工作。
您不需要使用SUM
此操作。试试这个查询:
SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
MySQL 中的 sum 函数的工作原理是它为您提供 select 语句中列中值的总和。如果您需要对查询中一行的值求和,则只需使用 plus ( +
) 您需要的是这个查询:
SELECT id, (`maths` +`chemistry`+`physics`) AS `total`, `maths`, `chemistry`, `physics`
FROM `student`;
这将为您提供所需的结果。
所有聚合函数都适用于由 rowname 和 group by 操作指定的行。您需要对单个行进行操作,这不是任何聚合函数的选项。
尝试这个
SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
你完成了。谢谢