我有一个名为“ PassFailMaster”的表,其中PassFail字段表示Pass为1;0表示失败。
我需要计算通过和失败的次数,并在同一行中显示它们。我尝试了2个聚合和一个并集,但每种测试类型最终都有2行。
以下是数据示例:
CodeName CodeDesc TestNumber PassFail
v1 Vibration 1 0
V1 Vibration 2 0
v1 Vibration 3 1
s1 Shock 4 1
s1 Shock 5 1
s1 Shock 6 0
这是我的查询
SELECT CodeName, CodeDesc, COUNT(CodeName) AS PassValues, 0 as FailValues
FROM PassFailMaster
WHERE (PassFail = 1)
GROUP BY CodeName, CodeDesc
UNION
SELECT CodeName, CodeDesc, 0 AS PassValues, COUNT(CodeName) AS FailValues
FROM PassFailMaster
WHERE (PassFail = 0)
GROUP BY CodeName, CodeDesc
ORDER BY CodeName
数据最终看起来像这样:
CodeName CodeDesc PassValues FailValues
s1 Shock 0 1
s1 Shock 2 0
v1 Vibration 0 2
v1 Vibration 1 0
我需要通行证的结果&不能像这样最终排成一行。
CodeName CodeDesc PassValues FailValues
s1 Shock 2 1
v1 Vibration 1 2
有任何想法吗?
谢谢-迈克
您可以像这样有条件地进行聚合:
select codename
, codedesc
, sum(case when passfail = 1 then 1 else 0 end) as pass_values
, sum(case when passfail = 0 then 1 else 0 end) as fail_values
from passfailmaster
group by codename
, codedesc
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句