안녕하세요 초보 개발자입니다.
조회 쿼리 정렬에 관한 질문인데요 테이블 데이터는 아래와 같습니다.
테이블 데이터
COL1 | COL2 |
---|---|
DW001 |
DL006 |
DW002 | DL007 |
DW003 | DL003 |
DW004 | DL004 |
DW005 | DL003 |
DW006 | DL005 |
DW007 | DL001 |
DW008 | DL002 |
DW009 | DL005 |
위의 데이터를 조회할때 정렬을 COL1기준으로 정렬하되 COL2번에 동일한 데이터가 있으면
아래 표처럼 먼저 조회되도록 만들고 싶습니다.
무슨 방법이 있을까요..ㅠㅠ
원하는 결과값
COL1 | COL2 |
---|---|
DW001 | DL006 |
DW002 | DL007 |
DW003 | DL003 |
DW005 | DL003 |
DW004 | DL004 |
DW006 | DL005 |
DW009 | DL005 |
DW007 | DL001 |
DW008 | DL002 |
WITH t AS ( SELECT 'DW001' col1, 'DL006' col2 FROM dual UNION ALL SELECT 'DW002', 'DL007' FROM dual UNION ALL SELECT 'DW003', 'DL003' FROM dual UNION ALL SELECT 'DW004', 'DL004' FROM dual UNION ALL SELECT 'DW005', 'DL003' FROM dual UNION ALL SELECT 'DW006', 'DL005' FROM dual UNION ALL SELECT 'DW007', 'DL001' FROM dual UNION ALL SELECT 'DW008', 'DL002' FROM dual UNION ALL SELECT 'DW009', 'DL005' FROM dual ) SELECT * FROM t ORDER BY MIN(col1) OVER(PARTITION BY col2), col1 ;