This is my table data Student
And this is my query --
Sum is a aggregate function. You dont need to use it. This is the simple query -
select *,(maths + chemistry + physics ) AS total FROM `student`
Try this
SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
You are done. Thanks
You don't need use SUM
for this operation. Try this query:
SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
The sum function in MySQL works in the sense that it gives you the sum of values in a column from your select statement. If you need to sum values from a row in your query, then just use plus (+
) What you need is this query :
SELECT id, (`maths` +`chemistry`+`physics`) AS `total`, `maths`, `chemistry`, `physics`
FROM `student`;
This will give you the results you need.
If you're requiring to get total marks of each student, then SUM
is not what you'd be needing.
SELECT id,
(maths+chemistry+physics) AS total,
maths,
chemistry,
physics
FROM `student`
Will do the job just fine.
Tip: If one of the fields has the possibility to be NULL, then use COALESCE to default these to 0, otherwise total
will result in NULL.
SELECT *, (
COALESCE(maths, 0) +
COALESCE(chemistry, 0) +
COALESCE(physics, 0)
) AS total
FROM `student`