• 根据group by、count case when 分组分类统计


    应用场景:

    页面展示的模板审核状态的规则如下:

    待提交:sub_status为 未提交
    
    审核通过:至少1个素材审核通过
    
    审核不通过:素材全部审核不通过
    
    审核中:其他

    通过sql语句查询出页面展示的模板审核状态

    表:

    CREATE TABLE TPL_MEDIA_AUDIT(
    ID INT PRIMARY KEY auto_increment,
    TEMP_ID INT NOT NULL DEFAULT 0 comment '素材所属模板id',
    MEDIA_ID INT NOT NULL DEFAULT 0 comment '素材id',
    SUB_STATUS INT NOT NULL DEFAULT 0 comment '0-未提交  1-已提交',
    AUDIT_STATUS INT NOT NULL DEFAULT 0 comment '0 审核中  1素材审核成功 2素材审核不通过  ',
    CREATE_TIME DATETIME DEFAULT NOW(),
    UPDATE_TIME DATETIME DEFAULT NOW()
    );

    说明:一个模板包含一个或多个素材,提交模板后,将提交状态改为已提交。程序将模板中的素材提交审核平台,审核完成后更新表的素材审核状态。

    表中的数据:

    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1001,100101,0,0);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1001,100102,0,0);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1002,100201,1,1);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1002,100202,1,0);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1002,100203,1,0);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1003,100301,1,1);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1003,100302,1,1);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1003,100303,1,2);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1004,100401,1,2);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1004,100402,1,2);
    insert into TPL_MEDIA_AUDIT(temp_id,media_id,sub_status,audit_status) values(1004,100403,1,2);

     

    根据group by 、count (case when)分组分类查询,sql语句如下

    select media.TEMP_ID,
    CASE WHEN media.toSubmitCount > 0 THEN '待提交'
      WHEN media.approvedCount > 0 THEN '审核通过'
      WHEN media.noapprovedCount = media.total THEN '审核不通过'  
      else '审核中'END state
    from   
    (
    select TEMP_ID,
    count(*) total, -- 总条数
    count(CASE WHEN SUB_STATUS = 0 THEN '0' END) toSubmitCount, -- 待提交的条数
    count(CASE WHEN AUDIT_STATUS = 0 THEN '0'END) toapproveCount, -- 审核中的条数
    count(CASE WHEN AUDIT_STATUS = 1 THEN '0'END) approvedCount, -- 审核通过的条数
    count(CASE WHEN AUDIT_STATUS = 2 THEN '0'END) noapprovedCount -- 审核不通过的条数
    from TPL_MEDIA_AUDIT
    group by TEMP_ID -- 根据tmpl_id分组
    ) media

    查询结果如下:

     加查询条件:审核状态为”待提交”,查询结果如下:

     

     

    作者:小念
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    _CrtSetBreakAlloc(…)来检测内存泄漏+VC使用CRT调试功能检测内存泄漏(转)
    VC 2005 解决方案的目录结构设置和管理
    ArcGIS Engine基础开发教程(转)
    vc++实现avi文件的操作 用于视频解析及录制(转)
    微软免费杀毒软件下周二公测 年底推简体中文版 狼人:
    大量用户升级iPhone3.0系统导致苹果服务器故障 狼人:
    苹果发布45个iPhone和iTouch漏洞补丁 狼人:
    “汉网热血三国”“南方电视台”等网站被挂马 狼人:
    WAPI有望晋身国际标准 最大阻力美国首度支持 狼人:
    前Google员工推云安全服务检测网站挂马 狼人:
  • 原文地址:https://www.cnblogs.com/kiko2014551511/p/14923001.html
Copyright © 2020-2023  润新知