zoukankan      html  css  js  c++  java
  • mysql 按某属性分组,再统计不同状态 COUNT(IF(FIELD(column_name,str1,str2,str3,...) >= 0, any_value, null)) ... GROUP BY group_column_name

    按某属性分组后,统计该数据中状态列,该状态列包含若干值,统计某一个或几个状态,其他状态业务为一个聚合状态,如空闲和占用(非空闲)状态。

    -- 利用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

    .

  • 相关阅读:
    Android作业10/21
    Android作业10/07
    Android作业0930
    Android作业 0923
    第四周作业
    第七周
    第六周
    第四周作业
    3.10第二次
    jsp第一次作业
  • 原文地址:https://www.cnblogs.com/foolash/p/14478992.html
Copyright © 2011-2022 走看看