这里是 SQL 初学者用户。
我需要我的 table 看起来像这样:
ModuleID | Draft | Proposed | Committed | Total
---------------------------------------------
A | 1 | 0 | 1 | 2
目前看起来像这样:
ModuleID | Draft | Proposed | Committed | Total
---------------------------------------------
A | 1 | 0 | 1 | 1
A | 0 | 0 | 1 | 1
这是代码:
SELECT T3.NAME AS ModuleID,
COUNT(CASE WHEN T4.LITERAL_NAME = 'Draft' THEN 1 END) AS Draft,
COUNT(CASE WHEN T4.LITERAL_NAME = 'Proposed' THEN 1 END) AS Proposed,
COUNT(CASE WHEN T4.LITERAL_NAME = 'Committed' THEN 1 END) AS Committed,
SUM(1) AS Total
FROM ...
WHERE ...
GROUP BY T4.LITERAL_NAME,T3.NAME
所以它提取了正确的信息,但它复制了每列的模块 ID。我已经搜索了董事会和谷歌,但无法弄清楚出了什么问题。请帮忙!
最佳答案
GROUP BY T4.LITERAL_NAME,T3.NAME
更改为
GROUP BY T3.NAME
关于mysql - COUNT(CASE WHEN) SQL 中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31997026/