sqlite 计数ID满足条件的次数

ssgvzors  于 2023-08-06  发布在  SQLite
关注(0)|答案(2)|浏览(145)

我想找出满足某个条件的次数,但包括零(每个经理下有多少名具有特定名称的员工)。
表:
| 名称,名称|管理员ID| manager_ID |
| --|--| ------------ |
| 若望|一个| 1 |
| 若望|一个| 1 |
| 简|二个| 2 |
| 若望|三个| 3 |
结果应为:
| 计数| count |
| --| ------------ |
| 二个| 2 |
| 0个| 0 |
| 一个| 1 |
使用WHERE不会返回0值:

SELECT manager_id, COUNT(*)
FROM employees
WHERE name = 'John'
GROUP BY manager_id

字符串

4ngedf3f

4ngedf3f1#

做一个GROUP BY。使用CASE * 表达式 * 进行 * 条件聚合 *。

SELECT manager_id,
       sum(case when name = 'John' then 1 else 0 end)
FROM employees
GROUP BY manager_id;

字符串

w6lpcovy

w6lpcovy2#

试试这个:

select
e1.manager_id, count(e2.id)
from employees e1
left outer join employees e2 on e1.id = e2.id and e2.name = 'John'
group by e1.manager_id
order by e1.manager_id
;

字符串

相关问题