sql查询count唯一值并返回单行

0kjbasz6  于 2021-06-25  发布在  Mysql
关注(0)|答案(3)|浏览(432)

这是我的数据表的结构

  1. empId, acitve
  2. 1,1
  3. 2,0
  4. 3,1
  5. 45,0
  6. 52,1
  7. 11,1

我想知道所有成员的计数[结果是6]
我想知道活动成员计数(active=1)[结果是4]
我想知道非活动成员计数(活动=0)[结果是2]
但是所有的数据都应该以适当的列名返回到一行中。
我试过了,但结果与预期不符:

  1. SELECT Count(*) total, active as total
  2. FROM it_staff_status
  3. GROUP by active
wribegjk

wribegjk1#

试试这个:

  1. SELECT COUNT(*) as total,
  2. SUM(CASE WHEN active = 1 THEN 1 END) as active_emp,
  3. SUM(CASE WHEN active = 0 THEN 1 END) as inactive_emp
  4. FROM it_staff_status
lrpiutwd

lrpiutwd2#

像这样的

  1. select Count(*) total,
  2. sum(active=1) as activemem,
  3. sum(active=0) as inactivemem
  4. from yourtable
yduiuuwa

yduiuuwa3#

试试这个:用户 CASE 数数 active & inactive 你不需要 group by 因为所有列都是使用聚合函数聚合的:

  1. SELECT Count(*) total,
  2. SUM(CASE WHEN ACTIVE = 1 THEN 1 ELSE 0 END) as Active,
  3. SUM(CASE WHEN ACTIVE = 0 THEN 1 ELSE 0 END) as InActive
  4. FROM it_staff_status

相关问题