码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL中遇到的问题以及解决方法(五)分组统计数据

时间:2020-07-09 19:08:42      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:src   aop   opera   mic   stat   问题   span   遇到   from   

select DBP_Sec+0 as ID ,ELT(
        INTERVAL (DBP_sec, 1, 2, 3, 4,5,6,7,8,9,10,11),
        "0-50",
                "50-60",
        "60-70",
                "70-80",
                "80-90",
        "90-100",
        "100-110",
                "110-120",
                "120-130",
                "130-140",
                "140+") as DBP,cnt,cnt/total_cnt*100 as percentage
                from (
SELECT
   ELT(
        INTERVAL (DBP, 0, 50, 60,70,80, 90,100,110,120,130,140),
        "1","2","3","4","5","6","7","8","9","10","11"
    ) AS DBP_sec, COUNT(0) AS cnt
FROM
 (SELECT
    p.*, pa.Age, pa.Sex, pa.Height, pa.Weight,pa.OperatorID as PaoperatorID,o.isCensus
FROM
    ppg_data AS p
    LEFT JOIN patient AS pa ON p.PatientID=pa.PatientID
    LEFT JOIN operator AS o ON o.OperatorID = p.OperatorID
WHERE
    p.TestEndTime >= 2019-12-17 00:00:01 
    AND p.TestEndTime < 2020-05-15 00:00:01 
    AND p.State = 1 
    AND o.isCensus = 1
    AND SBP IS not null 
    AND p.PPGFilePath IS NOT NULL)A
GROUP BY
     ELT(
        INTERVAL (DBP, 0, 50, 60,70,80, 90,100,110,120,130,140),
        "1","2","3","4","5","6","7","8","9","10","11")
        order by DBP_sec)A
        join
        (select count(0) as total_cnt FROM
    ppg_data AS p
    LEFT JOIN patient AS pa ON p.PatientID=pa.PatientID
    LEFT JOIN operator AS o ON o.OperatorID = p.OperatorID
WHERE
    p.TestEndTime >= 2019-12-17 00:00:01 
    AND p.TestEndTime < 2020-05-15 00:00:01 
    AND p.State = 1 
    AND o.isCensus = 1
    AND SBP IS not null 
    AND p.PPGFilePath IS NOT NULL)B
        on 1=1
                order by ID;

 结果:左闭右开

技术图片

MYSQL中遇到的问题以及解决方法(五)分组统计数据

标签:src   aop   opera   mic   stat   问题   span   遇到   from   

原文地址:https://www.cnblogs.com/zhanghongpan/p/13275469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!