我不熟悉使用 group by 进行 MySQL 查询
我有这些表:
- user 包含以下列:
userid
、position
、dept_id
、status
- 部门,包含以下列:
dept_id
、name
我想要一个查询来计算位置为 ojt、subcon 的所有用户, 所有部门的状态均为辞职
所以我有一个看起来像这样的表格:
SEDC dept:
ojt users count: 13
subcon users count: 32
resigned users count: 2
HR dept:
ojt users count: 2
subcon users count: 3
resigned users count: 1
Finance dept:
ojt users count: 4
subcon users count: 6
resigned users count: 1
最佳答案
尝试这个查询
select a.nam,case when position='ojt' then acount else o end as ojtuser
case when position='subcon' then acount else o end as subconuser
regincount
from department a
join(
select dept_id,Position,Count(*) acount from user
group by Dept_id,Position)b on a.dept_id=b.dept_id
join(
select dept_id,Count(*) regincount from user status=resigned
group by dept_id)c on a.dept_id=c.dept_id
关于MySQL 查询具有按同一列分组的多个计数条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31153138/