如何编写SQL查询以找出5列中最高4列的总和?

时间:2016-05-26 16:04:29

标签: mysql sql

我有一张下表

ClassTestMark:

| StudentId | SubjectCode | ClassTest_1 | ClassTest_2 | ClassTest_3 | ClassTest_4 | ClassTest_5 | 
|-----------+-------------+-------------+-------------+-------------+-------------+-------------|
| 070451    | Ch-143      |          10 |          15 |          10 |          12 |          14 |

我想查询结果如下:

| StudentId | SubjectCode | Total |
|-----------+-------------+-------|
| 070451    | Ch-143      |   51  |

1 个答案:

答案 0 :(得分:10)

你可以使用一种技巧: 首先,添加所有值,然后从该结果中扣除最低值。

bestOf4 =(ClassTest_1 + ClassTest_2 + ClassTest_3 + ClassTest_4 + ClassTest_5) - 最小列值(ClassTest_1,ClassTest_2,ClassTest_3,ClassTest_4,ClassTest_5)

SQL:

SELECT(`ClassTest_1` + `ClassTest_2` + `ClassTest_3` + `ClassTest_4` + `ClassTest_5` - least( `ClassTest_1` , `ClassTest_2` , `ClassTest_3` , `ClassTest_4` , `ClassTest_5`)
)AS Total
FROM ClassTestMark