【发布时间】:2010-09-02 16:49:56
【问题描述】:
产品根据大约 20 个标准进行分组以进行检查和通过/失败。 他们需要一份报告来计算单个组的每个缺陷的数量。
Defect* 是 varchar(3),用于识别哪些条件失败。
该表有 3 列的缺陷,我可以用类似的方式返回它们:
SELECT GroupID,
Defect1, COUNT(Defect1) as Occ1,
Defect2, COUNT(Defect2) as Occ2,
Defect3, COUNT(Defect3) as Occ3
FROM Product
WHERE Run = 1728 AND Defect1 IS NOT NULL
GROUP BY GroupID, Defect1, Defect2, Defect3
ORDER BY GroupID
输出如下:
GroupID Def1 Occ1 Def2 Occ2 Def3 Occ3
RF-061 CPP 1 FPV 1 null 0
RF-061 FPV 1 CPP 1 null 0
RF-061 HCR 1 CHP 1 null 0
RF-061 CHP 1 FPV 1 null 0
RF-061 FBL 1 HCR 1 FPT 1
RF-061 CHP 1 CPP 1 HCR 1
RF-061 CHP 1 CPP 1 null 0
RF-061 CPP 1 FBL 1 null 0
...
期望的输出:
GrPupID Def Occurrences
BF-061 FPV 4
BF-061 CPP 5
BF-061 CHP 5
BF-061 HCR 5
BF-061 FBL 3
BF-061 PPC 1
BF-061 FPT 1
在 SQL Server 7 上,是的,我知道。
【问题讨论】:
标签: sql sql-server count group-by