【发布时间】:2023-03-25 07:58:02
【问题描述】:
这里是初级 SQL 用户。
我需要我的桌子看起来像这样:
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。我已经搜索了董事会和谷歌,无法弄清楚出了什么问题。请帮忙!
【问题讨论】:
-
将literalname 和name 字段放入您的选择字段列表中,您可能会发现它并没有“复制”您的行。您有唯一的行,只是没有显示使它们唯一的字段。
标签: mysql sql-server duplicates rows multiple-columns