让我们以下表为例
ID Name Status
1 Jon pass
2 Jon fail
3 Jon fail
4 Snow pass
5 Snow fail
6 Snow fail
我需要写一个查询,以下面的格式显示结果
Name Total Pass Fail
Jon 3 1 2
Snow 3 1 2
我正在用select中的子查询尝试以下查询,但我知道它不正确。请告知。
SELECT
Name,
count(ID) as Total,
(SELECT count(ID) FROM results WHERE status = 'pass') as Pass
(SELECT count(ID) FROM results WHERE status = 'fail') as Fail
FROM results
HAVING count(ID)>2
GROUP BY Name
ORDER BY count(ID) desc;
2条答案
按热度按时间ffscu2ro1#
您可以使用条件聚合:
我保留了
HAVING
条款(必须放在GROUP BY
)因为你在你的代码中使用它。请看演示。
结果:
6qfn3psc2#
尝试下面的脚本-