我有一张名为&#34的表格;结果"如下所示:
我想计算完全得分的人员。这意味着得分列中没有零的人。例如,基于上传的图片,只计算ID为1004的人,结果应为1。 我用了这段代码:
select Count(PrsID) from results
where Score <> 0
group by PrsID
但如果一个人只有一个非零分数,它就不会帮助我,他将被计算在内!
提前致谢。
答案 0 :(得分:0)
我想你想要这样的东西:
select PrsID, Count(1) from results
where Score = 0
group by PrsID
答案 1 :(得分:0)
这个返回非零分数的人数
SELECT
t1.PrsID,
Count(t1.PrsID)
FROM
( SELECT
*
FROM results
GROUP BY results.PrsID
ORDER BY results.Score ASC
) AS t1
WHERE t1.Score <> 0;
答案 2 :(得分:0)
您可以使用以下条件聚合:
Select PrsId from results
group by PrsId
having sum(case when score = 0 then 1 else 0 end) > 1
答案 3 :(得分:0)
如果我理解正确,我认为这就是你想要的:SELECT COUNT(DISTINCT(PrsID)) FROM results WHERE PrsID NOT IN (SELECT DISTINCT PrsID FROM results WHERE score = 0)
答案 4 :(得分:0)
如果一个人的最低分数大于零,则应计算它们。
select count(1)
from (
select PrsID
from results
group by PrsID
having min(Score) > 0) as results