如何在mysql中添加列值

Tri*_*der 24 mysql sql logic sum

这是我的表数据 Student

在此输入图像描述

这是我的疑问 -

SELECT id, SUM( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
Run Code Online (Sandbox Code Playgroud)

但它扔了一排 -

id  total   maths   chemistry   physics
118     760     55  67  55
Run Code Online (Sandbox Code Playgroud)

虽然我想申请所有ID的金额....让我知道我怎么能实现这一目标?

小智 63

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

select *,(maths + chemistry + physics ) AS total FROM `student`
Run Code Online (Sandbox Code Playgroud)


hjp*_*r92 10

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

SELECT id,
    (maths+chemistry+physics) AS total,
    maths,
    chemistry,
    physics
FROM `student`
Run Code Online (Sandbox Code Playgroud)

会做得很好.


小智 8

您无需使用SUM此操作.试试这个查询:

SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
Run Code Online (Sandbox Code Playgroud)


dig*_*out 6

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

SELECT *, (
    COALESCE(maths, 0) +
    COALESCE(chemistry, 0) +
    COALESCE(physics, 0)
) AS total 
FROM `student`
Run Code Online (Sandbox Code Playgroud)