by 스파르타 [SQL Query] [2020.11.05 17:00:45]
WITH t AS
(
SELECT 1 GRP, '101' id, '20201102110757' DT FROM dual
UNION ALL SELECT 1, '102', '20201104110750' FROM dual
UNION ALL SELECT 2, '201', '20201103110757' FROM dual
UNION ALL SELECT 3, '301', '20201101110757' FROM dual
UNION ALL SELECT 3, '302', '20201105110757' FROM dual
UNION ALL SELECT 4, '401', '20201104110757' FROM dual
UNION ALL SELECT 4, '402', '20201104110758' FROM dual
UNION ALL SELECT 4, '403', '20201102110757' FROM dual
)
그룹중에 최신일자가 있으면 소트시 그 그룹이 맨앞으로오게 가능할까요..
ROW_NUMBER ... RANK 등 함수써봐도 도통 모르겠어여..
그래서 KEEP 함수가 가능할까 해서 해봤는데 안되는거 같아서...
원하는 결과는 아래처럼 소트됬음합니다.
GRP 이 같은놈중 일자가 최신인게 하나라도 있으면 GRP 전체를 위로 올리는건데요... 싶지않네요..
GRP ID DT
------------------------------------------------------
3 301 20201101110757
3 302 20201105110757
4 401 20201104110758
4 402 20201104110757
4 403 20201102110757
1 101 20201102110757
1 102 20201104110750
2 201 20201103110757