mysql 按某属性分组,再统计不同状态

-- 利用FIELD()自定义排序函数,不在列表中的值结果为0,可使用= >等条件判断,COUNT(expr)统计非整行数据时,忽略NULL值
SELECT
    COUNT( 1 ),
-- 统计状态1的数量
    COUNT(IF(
        FIELD( state, '状态1' ) = 1, 1, NULL
    )) state1Cnt,
-- 统计非状态1的数量。或者统计其他状态。
    COUNT(IF(
        FIELD( state, '状态1' ) = 0, 1, NULL
    )) noState1Cnt 
FROM
    table_name 
-- LEFT JOIN table_name
-- WHERE CONDITION
GROUP BY
-- 待分组列
    group_prop

你可能感兴趣的:(mysql,mysql)