我有一张桌子,看上去如下所示:
+========================================================+
| Number | Date | Liter | Type |
+=========================================================+
| 1 | 2018-11-01 | 1.0 | A |
| 2 | 2018-11-01 | 2.0 | A |
| 3 | 2018-11-01 | 3.0 | B |
| 1 | 2018-11-02 | 4.0 | NULL |
| 2 | 2018-11-02 | 5.0 | B |
| 3 | 2018-11-02 | 6.0 | NULL |
| 1 | 2018-11-03 | 7.0 | B |
| 2 | 2018-11-03 | 8.0 | B |
| 3 | 2018-11-03 | 9.0 | NULL |
+---------------------------------------------------------+我需要一些东西,和WHERE Date LIKE '2018-11-%'一起
+========================================================+
| Number | SumOfTypeA | SumOfTypeB | SumOfTypeNULL |
+=========================================================+
| 1 | 1.0 | 7.0 | 4.0 |
| 2 | 2.0 | 13.0 | NULL |
| 3 | NULL | 3.0 | 15.0 |
+---------------------------------------------------------+有做这个查询的想法吗?
发布于 2018-11-13 14:12:52
可以使用SUM()和CASE..WHEN表达式进行条件聚合:
SELECT
Number,
SUM(CASE WHEN Type = 'A' THEN Liter END) AS SumOfTypeA,
SUM(CASE WHEN Type = 'B' THEN Liter END) AS SumOfTypeB,
SUM(CASE WHEN Type IS NULL THEN Liter END) AS SumOfTypeNull
FROM your_table
WHERE Date LIKE '2018-11-%'
GROUP BY Numberhttps://stackoverflow.com/questions/53282910
复制相似问题