with t as (
select 1 as user_no, to_date('20120719 183000', 'YYYYMMDD HH24MISS') as rdate, 'A' as gcode from dual
union all select 2, to_date('20120719 183000', 'YYYYMMDD HH24MISS'), 'A' from dual
union all select 3, to_date('20120719 183000', 'YYYYMMDD HH24MISS'), 'A' from dual
union all select 4, to_date('20120719 183000', 'YYYYMMDD HH24MISS'), 'B' from dual
union all select 5, to_date('20120719 193000', 'YYYYMMDD HH24MISS'), 'B' from dual
union all select 6, to_date('20120719 200000', 'YYYYMMDD HH24MISS'), 'C' from dual
union all select 7, to_date('20120719 193000', 'YYYYMMDD HH24MISS'), 'B' from dual
union all select 8, to_date('20120719 200000', 'YYYYMMDD HH24MISS'), 'C' from dual
union all select 9, to_date('20120719 210000', 'YYYYMMDD HH24MISS'), 'C' from dual
union all select 10, to_date('20120719 223000', 'YYYYMMDD HH24MISS'), 'D' from dual
union all select 11, to_date('20120719 223000', 'YYYYMMDD HH24MISS'), 'D' from dual
union all select 12, to_date('20120719 233000', 'YYYYMMDD HH24MISS'), 'D' from dual
union all select 13, to_date('20120719 223000', 'YYYYMMDD HH24MISS'), 'A' from dual
union all select 14, to_date('20120719 183000', 'YYYYMMDD HH24MISS'), 'A' from dual
union all select 15, to_date('20120719 183000', 'YYYYMMDD HH24MISS'), 'B' from dual
)
select ROW_NUMBER() OVER(PARTITION BY rdate, gcode ORDER BY rdate ASC ) AS orst, t.* from t;
회원 데이타가 있습니다. 위 쿼리는 샘플로 만든겁니다.
회원 등록 시간과 등록 그룹별로 묶고 싶습니다.
원하는 형태는 ( 목표 데이타 순서 )
1 / 2012-07-19 오후 6:30:00 / A
2 / 2012-07-19 오후 6:30:00 / A
3 / 2012-07-19 오후 6:30:00 / A
4 / 2012-07-19 오후 6:30:00 / A1 / 2012-07-19 오후 6:30:00 / B
2 / 2012-07-19 오후 6:30:00 / B
3 / 2012-07-19 오후 7:30:00 / B
4 / 2012-07-19 오후 7:30:00 / B1 / 2012-07-19 오후 8:00:00 / C
2 / 2012-07-19 오후 8:00:00 / C
3 / 2012-07-19 오후 9:00:00 / C1 / 2012-07-19 오후 10:30:00 / A1 / 2012-07-19 오후 10:30:00 / D
2 / 2012-07-19 오후 10:30:00 / D
3 / 2012-07-19 오후 11:30:00 / D
이렇게 시간 순서로 그룹별로 묶는겁니다.
B, C, D 그룹을 보면, 가입 시간이 틀려도 그룹이 같으면 한 그룹으로 묶어줘야 하며 -
그룹과 그룹 사이에 다른 그룹이 있으면 표시도 해줘야 합니다.
지금은 row_number 으로 시간 순으로 표시하도록 해놓았습니다.
같은 라인에 있는 그룹( B, C, D )이라도 서로 떨어져서 별개의 그룹으로 표시가 되는데 -
목표 화면처럼 하고 싶습니다.