MySQL 查询具有按同一列分组的多个计数条件

标签 mysql sql count

我不熟悉使用 group by 进行 MySQL 查询

我有这些表:

  • user 包含以下列:useridpositiondept_idstatus
  • 部门,包含以下列:dept_idname

我想要一个查询来计算位置为 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/

相关文章:

sql - 在 t-sql 中获取每隔一行作为结果表

Unix 命令获取 csv 文件中的行数

javascript - Google Charts BarChart OnClick 或 OnSelect

C++:如何在类中创建和使用 mysql 连接

php - 使用php将Mysql日期转换为JSON中的毫秒

sql - 如何在同一个 SQL 表中的两行之间执行按位或运算?

sql - 如果确切时间不可用,如何根据最后一个可用时间戳返回值?

CakePHP GROUP 和 COUNT 个项目在列表中返回

python - 我需要统计用户在 python 中输入的数据

php - 可笑的慢学说查询