26

这是我的表格数据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 ....让我知道如何实现这一点?

4

7 回答 7

69

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

select *,(maths + chemistry + physics ) AS total FROM `student`
于 2012-09-12T11:34:17.327 回答
15

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

SELECT *, (
    COALESCE(maths, 0) +
    COALESCE(chemistry, 0) +
    COALESCE(physics, 0)
) AS total 
FROM `student`
于 2018-04-25T12:47:37.163 回答
11

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

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

会很好地完成这项工作。

于 2012-09-12T11:31:42.417 回答
9

您不需要使用SUM此操作。试试这个查询:

SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
于 2012-09-12T11:32:42.977 回答
1

MySQL 中的 sum 函数的工作原理是它为您提供 select 语句中列中值的总和。如果您需要对查询中一行的值求和,则只需使用 plus ( +) 您需要的是这个查询:

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

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

于 2019-05-16T11:16:56.063 回答
0

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

于 2014-07-23T10:50:20.930 回答
0

尝试这个

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

你完成了。谢谢

于 2018-09-21T08:19:49.280 回答