如何在一个MySQL请求中进行多个COUNT



我的MySQL有问题。

我有以下请求:

SELECT user_id, COUNT(*) 
FROM users_vuln 
WHERE vuln_id IN (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62) 
GROUP BY user_id;

SELECT user_id, COUNT(*) 
FROM users_vuln 
WHERE vuln_id IN (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62) 
AND concerned = 1 
GROUP BY user_id; 

这单独运行很好,但我希望通过为每个COUNT设置2列,将这2个请求重新组合为1。

像这样:

user_idCOUNT1COUNT2
1135
2104
392

使用条件聚合:

SELECT
user_id,
COUNT(*) AS COUNT1,
SUM(concerned = 1) AS COUNT2
FROM users_vuln
WHERE vuln_id IN (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62)
GROUP BY user_id;

最新更新