★//查询连续两个小时的AQI>=500的数据,而且查询出爆表时长和爆表次数

SELECT AREA,
        F.CITYCODE,
        SUM_HOUR AS AQIBBSC,
        CNT_HOUR AS AQICXBBCS
FROM 
    (SELECT AREA,
        E.CITYCODE,
        SUM_HOUR,
        CNT_HOUR,
        C.LONGITUDE,
        C.LATITUDE,
         ROW_NUMBER()
        OVER (PARTITION BY E.AREA
    ORDER BY  E.AREA DESC) AS RN
    FROM 
        (SELECT AREA,
        D.CITYCODE,
        SUM(HOUR_CNT) SUM_HOUR,
        COUNT(*) CNT_HOUR
        FROM 
            (SELECT AREA,
        C.CITYCODE,
        HOURSDIF,
        COUNT(*) HOUR_CNT
            FROM 
                (SELECT AREA,
        B.CITYCODE,
         HOUR(ATIMEPOINT)-HOUR(BTIMEPOINT) + (DAYS(ATIMEPOINT) - DAYS(BTIMEPOINT)) * 24 -ROWNUM AS HOURSDIF
                FROM 
                    (SELECT TIMEPOINT ATIMEPOINT,
        AREA,
        A.CITYCODE,
        
                        (SELECT TIMEPOINT
                        FROM DSJYDD.AIR_CITYHOURAQI_PUBLISH B
                        WHERE AQI >= 500
                                AND TO_CHAR(TIMEPOINT,'YYYY-MM') >= '2017-10'
                                AND TO_CHAR(TIMEPOINT,'YYYY-MM') <= '2018-03'
                                AND B.CITYCODE = A.CITYCODE
                                AND ROWNUM = 1 ) BTIMEPOINT
                        FROM DSJYDD.AIR_CITYHOURAQI_PUBLISH A
                        WHERE AQI >= 500
                                AND TO_CHAR(TIMEPOINT,'YYYY-MM') >= '2017-10'
                                AND TO_CHAR(TIMEPOINT,'YYYY-MM') <= '2018-03'
                                AND A.CITYCODE IN ('110000','120000','130100','130200','131000','130600','130900','131100','130500','130400','140100' ,'140300','140400','140500','370100','370300','370800','371400','371500','371600','371700','410100','410200' ,'410500','410600','410700','410800','410900') ) B
                        ORDER BY  AREA ) C
                        GROUP BY  AREA,C.CITYCODE,HOURSDIF
                        HAVING COUNT(HOURSDIF) > 1 ) D
                        GROUP BY  AREA,CITYCODE
                        ORDER BY  AREA ) E
                        INNER JOIN DSJYDD.POINT_INFO C
                            ON E.CITYCODE = C.CITYCODE
                        GROUP BY  AREA,SUM_HOUR,CNT_HOUR,C.LONGITUDE,C.LATITUDE,E.CITYCODE ) F
                    WHERE RN = 1

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值