Oracle 按固定时间段分组查询

SELECT   

count(SINGLE_PICKUP_STATION_NAME) as total,count(SINGLE_GETOFF_STATION_NAME) as total2,

temp.SINGLE_PICKUP_STATION_NAME,temp.SINGLE_GETOFF_STATION_NAME,temp.TICKET_TYPE,temp.SINGLE_GETOFF_LINE_NAME,
(TO_CHAR(ORDER_DATE,'YYYY')||':'||TO_CHAR(ORDER_DATE,'MM')||':'||TO_CHAR(ORDER_DATE,'DD')||' '||substr(TO_CHAR(ORDER_DATE,'HH24:MI'),1,2)||':'||temp.T) as orderD
 from(
       SELECT ORDER_DATE ,
              ORDER_NO,
               SINGLE_PICKUP_LINE_NAME, -- 上车线路名称
               SINGLE_PICKUP_STATION_NAME, -- 上车站点名称
               SINGLE_GETOFF_LINE_NAME,  -- 下车线路名称
               SINGLE_GETOFF_STATION_NAME, -- 下车站点名称
               TICKET_TYPE,
             CASE  FLOOR(substr(TO_CHAR(ORDER_DATE,'HH24:MI'),-2)/30) 
             WHEN  0 THEN '30'
             WHEN  1 THEN '60'
             END  as T

       FROM qdyf.OWNER_ORDER_SJT

where 1=1

            ) temp
GROUP BY TO_CHAR(ORDER_DATE,'YYYY'),TO_CHAR(ORDER_DATE,'MM'),TO_CHAR(ORDER_DATE,'DD'),substr(TO_CHAR(ORDER_DATE,'HH24:MI'),1,2),

temp.T,temp.SINGLE_PICKUP_STATION_NAME,temp.SINGLE_GETOFF_STATION_NAME,

temp.SINGLE_GETOFF_LINE_NAME,temp.TICKET_TYPE

order by TO_CHAR(ORDER_DATE,'YYYY'),TO_CHAR(ORDER_DATE,'MM'),TO_CHAR(ORDER_DATE,'DD'),substr(TO_CHAR(ORDER_DATE,'HH24:MI'),1,2),temp.T



你可能感兴趣的:(数据库)