I have a table of student scorecard. here is the table,
subject | mark1 | mark2 | mark3 |......|markn stud1 | 99 | 87 | 92 | | 46 stud2 |.................................... . . studn |....................................|
Now, i need to sum it for each student of total marks. I got it by using sum(mark1+mark2+...+markn) group by stud
. I want to know how to sum it without adding each column name,it will be huge when in case up to marks26. so could anyone know how to fix it. Thanks in advance.
SELECT CONCAT('SELECT ', group_concat(`COLUMN_NAME` SEPARATOR '+'), ' FROM scorecard') FROM `INFORMATION_SCHEMA`. `COLUMNS` WHERE `TABLE_SCHEMA` = (select database()) AND `TABLE_NAME` = 'scorecard' AND `COLUMN_NAME` LIKE 'mark%'; The query above will generate another query that will do the selecting for you.
The SQL AGGREGATE SUM() function returns the SUM of all selected column. Applies to all values. Return the SUM of unique values. Expression made up of a single constant, variable, scalar function, or column name.
SUM() function. MySQL SUM() function returns the sum of an expression. SUM() function returns NULL when the return set has no rows.
SELECT student, (SUM(mark1)+SUM(mark2)+SUM(mark3)....+SUM(markn)) AS Total FROM your_table GROUP BY student
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With