我确信我想做的事情是显而易见的,但我已经坚持了一个小时。
以下是我的数据库的简化版本:
+------------+---------+----------+---------+
| EXERCICE | MCOT | MCOT_1 | MCOT_2 |
+------------+---------+----------+---------+
| 2016 | 1754.00 | 1385.00 | 776.00 |
| 2016 | 3166.00 | 14291.00 | 582.00 |
| 2015 | 1385.00 | 0.00 | 5820.00 |
| 2016 | 0.00 | 4551.00 | 5969.00 |
| 2014 | 792.00 | 3364.00 | 2522.00 |
+------------+---------+----------+---------+
我所要做的就是能够在每个列(MCOT,MCOT_1,MCOT_2)的某种方式中加总,只要运动年份是相同的
我想要的输出如下:
+------------+--------------+---------------+
| max_year | last_year | year_before |
+------------+--------------+---------------+
| 32474 | 7205 | 6678 |
+------------+--------------+---------------+
我尝试了一些像
这样的东西SELECT MCOT + MCOT_1 + MCOT_2 AS max_year WHERE EXERCICE = MAX(EXERCICE) FROM TABLE
和
SELECT SUM(CASE WHEN EXERCICE = MAX(EXERCICE) THEN MCOT + MCOT_1 + MCOT_2 END)
AS max_year FROM table
我想我的表现非常糟糕,但我认为这比这更容易。
我该怎么做?
答案 0 :(得分:1)
应该是SELECT
,FROM
,TABLE
,然后是WHERE
条件,为了获得列的总和,您应该使用SUM()
:
SELECT SUM(MCOT + MCOT_1 + MCOT_2) AS Total
FROM your_table
WHERE EXERCICE = (SELECT MAX(EXERCISE) AS EXERCISE FROM your_table);