-- 무식하게.. WITH T ( DT ) AS ( SELECT TO_DATE('20130913122801' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913123801' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913131801' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913135801' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913140101' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913140301' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913144101' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913144801' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913152011' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913152801' , 'YYYYMMDDHH24MISS' ) FROM DUAL UNION ALL SELECT TO_DATE('20130913152801' , 'YYYYMMDDHH24MISS' ) FROM DUAL ) SELECT DD , COUNT(*) FROM (SELECT TO_CHAR(DT,'YYYYMMDDHH24') || DECODE(SIGN(TO_CHAR(DT,'MI')-30),-1,'A','B') DD FROM T) GROUP BY DD