我有两张桌子:
表格alpha:
ID | Name
---------
1 | A
2 | B
3 | C
表格测试版:
ID | state
----------
1 | 1
1 | 2
1 | 2
2 | 1
我想得到如下结果:
ID | Count(state=1) | Count (state=2)
-------------------------------------
1 | 1 | 2
2 | 1 | 0
3 | 0 | 0
如何使用SQL执行此操作? 我可以在没有ID 3结果的情况下获得表格,但这不是我想要的。
提前致谢!
答案 0 :(得分:3)
SELECT a.ID,
SUM(CASE WHEN b.state = 1 THEN 1 ELSE 0 END) AS State1Count,
SUM(CASE WHEN b.state = 2 THEN 1 ELSE 0 END) AS State2Count
FROM alpha a
LEFT JOIN beta b
ON a.ID = b.ID
GROUP BY a.ID