sql查询计数唯一值并返回单行

时间:2018-01-09 11:48:03

标签: mysql sql

这是我的数据表

的结构
{
  config: { ... },
  response: undefined,
  message: "Network Error",
  stack: "Error: Network Error at createError (http://localhost:3000/static/js/bundle.js:1636:15) at XMLHttpRequest.handleError (http://localhost:3000/static/js/bundle.js:1170:14)"
}
  1. 我想知道所有会员的数量[结果是6]
  2. 我想知道活跃会员数(有效= 1)[结果是4]
  3. 我想知道非活动成员数(active = 0)[result is 2]
  4. 但是所有数据都应该在具有适当列名的单行中返回。

    我试过了,但结果不符合预期:

    empId, acitve
    
    1,1
    
    2,0
    
    3,1
    
    45,0
    
    52,1
    
    11,1
    

3 个答案:

答案 0 :(得分:2)

像这样的东西

select Count(*) total,
       sum(active=1) as activemem,
       sum(active=0) as inactivemem
from yourtable 

答案 1 :(得分:2)

尝试使用:用户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 InActive
FROM it_staff_status

答案 2 :(得分:0)

试试这个:

{{1}}