在条件下获取特定细胞的总和

时间:2017-08-08 08:32:42

标签: mysql sql

我确信我想做的事情是显而易见的,但我已经坚持了一个小时。

以下是我的数据库的简化版本:

+------------+---------+----------+---------+
|  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

我想我的表现非常糟糕,但我认为这比这更容易。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

应该是SELECTFROMTABLE,然后是WHERE条件,为了获得列的总和,您应该使用SUM()

SELECT SUM(MCOT + MCOT_1 + MCOT_2) AS Total
FROM your_table
WHERE EXERCICE = (SELECT MAX(EXERCISE) AS EXERCISE FROM your_table);