SQL Pivot 计数不完整和完整

Lup*_*iel 0 sql sql-server pivot

首先让我先说我的 SQL 知识非常有限。所以我有下表 桌子

现在我想在 SQL 中创建一个看起来像这样的数据透视表
枢

现在第二列的 PN 可以不时重复。
虽然我设法计算了完整和不完整,但似乎无法弄清楚如何说 PN 和 EntryDate 组合(串联)是唯一的,并希望以此为基础进行计数(将绿色和黄色行视为相同的 PN)。
基本上,如果“已完成”行的数据是完整的,而 null 是不完整的。

数据库是 MS SQL 感谢
所有帮助,
谢谢

mkR*_*ani 5

使用聚合尝试以下逻辑-

SELECT PN,
SUM(CASE WHEN completed IS NOT NULL THEN 1 ELSE 0 END) Completed,
SUM(CASE WHEN completed IS NULL THEN 1 ELSE 0 END) Incomplete,
COUNT(*) Total
FROM your_table
GROUP BY PN
Run Code Online (Sandbox Code Playgroud)

或者

SELECT PN,
COUNT(completed) Completed,
COUNT(*) - COUNT(completed) Incomplete,
COUNT(*) Total
FROM your_table
GROUP BY PN
Run Code Online (Sandbox Code Playgroud)

正如您评论并希望通过 EntryDate 单独记录一样,您可以执行以下操作 -

SELECT PN,
SUM(CASE WHEN completed IS NOT NULL THEN 1 ELSE 0 END) Completed,
SUM(CASE WHEN completed IS NULL THEN 1 ELSE 0 END) Incomplete,
COUNT(*) Total
FROM your_table
GROUP BY PN, EntryDate
Run Code Online (Sandbox Code Playgroud)