这是我的数据表的结构
empId, acitve1,12,03,145,052,111,1
empId, acitve
1,1
2,0
3,1
45,0
52,1
11,1
我想知道所有成员的计数[结果是6]我想知道活动成员计数(active=1)[结果是4]我想知道非活动成员计数(活动=0)[结果是2]但是所有的数据都应该以适当的列名返回到一行中。我试过了,但结果与预期不符:
SELECT Count(*) total, active as totalFROM it_staff_statusGROUP by active
SELECT Count(*) total, active as total
FROM it_staff_status
GROUP by active
wribegjk1#
试试这个:
SELECT COUNT(*) as total, SUM(CASE WHEN active = 1 THEN 1 END) as active_emp,SUM(CASE WHEN active = 0 THEN 1 END) as inactive_empFROM it_staff_status
SELECT COUNT(*) as total,
SUM(CASE WHEN active = 1 THEN 1 END) as active_emp,
SUM(CASE WHEN active = 0 THEN 1 END) as inactive_emp
lrpiutwd2#
像这样的
select Count(*) total, sum(active=1) as activemem, sum(active=0) as inactivememfrom yourtable
select Count(*) total,
sum(active=1) as activemem,
sum(active=0) as inactivemem
from yourtable
yduiuuwa3#
试试这个:用户 CASE 数数 active & inactive 你不需要 group by 因为所有列都是使用聚合函数聚合的:
CASE
active
inactive
group by
SELECT Count(*) total, SUM(CASE WHEN ACTIVE = 1 THEN 1 ELSE 0 END) as Active, SUM(CASE WHEN ACTIVE = 0 THEN 1 ELSE 0 END) as InActiveFROM it_staff_status
SELECT Count(*) total,
SUM(CASE WHEN ACTIVE = 1 THEN 1 ELSE 0 END) as Active,
SUM(CASE WHEN ACTIVE = 0 THEN 1 ELSE 0 END) as InActive
3条答案
按热度按时间wribegjk1#
试试这个:
lrpiutwd2#
像这样的
yduiuuwa3#
试试这个:用户
CASE
数数active
&inactive
你不需要group by
因为所有列都是使用聚合函数聚合的: