RANK() 잘쓰시는 분 계신가요? 0 2 701

by 권오창 [2019.10.18 11:12:27]


NAME   CODE          DATE               SEQ

NVT    20190926-01    2019/09/26         1
NVT    20190928-01    2019/09/28         2 
NVT    20191001-01    2019/10/01         3
NVT    20191010-01    2019/10/10         4
NVT    20191010-03    2019/10/10         5
NVT    20191010-03    2019/10/10         5
NVT    20191010-04    2019/10/10         6
NVT    20191010-05    2019/10/10         7
NVT    20191010-06    2019/10/10         8 
NVT    20191010-07    2019/10/10         9
NVT    20191010-08    2019/10/10        10
NVT    20191010-09    2019/10/10        11
NVT    20191010-10    2019/10/10        12
NVT    20191012-01    2019/10/12        13 

 

위에 데이터가 있는데요 2번째 저 값을 그룹을 지어서 순번을 옆에처럼 먹여야 되는데

RANK()써봤는데 1 2 3 4 5 5 7 .......

이렇게 나가네요

 

 

by jkson [2019.10.18 11:16:48]
WITH T (NM, CD, DT, SEQ) AS
(
SELECT 'NVT', '20190926-01', TO_DATE('2019/09/26','YYYY-MM-DD'), 1 FROM DUAL UNION ALL
SELECT 'NVT', '20190928-01', TO_DATE('2019/09/28','YYYY-MM-DD'), 2 FROM DUAL UNION ALL
SELECT 'NVT', '20191001-01', TO_DATE('2019/10/01','YYYY-MM-DD'), 3 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-01', TO_DATE('2019/10/10','YYYY-MM-DD'), 4 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-03', TO_DATE('2019/10/10','YYYY-MM-DD'), 5 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-03', TO_DATE('2019/10/10','YYYY-MM-DD'), 5 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-04', TO_DATE('2019/10/10','YYYY-MM-DD'), 6 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-05', TO_DATE('2019/10/10','YYYY-MM-DD'), 7 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-06', TO_DATE('2019/10/10','YYYY-MM-DD'), 8 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-07', TO_DATE('2019/10/10','YYYY-MM-DD'), 9 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-08', TO_DATE('2019/10/10','YYYY-MM-DD'), 10 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-09', TO_DATE('2019/10/10','YYYY-MM-DD'), 11 FROM DUAL UNION ALL
SELECT 'NVT', '20191010-10', TO_DATE('2019/10/10','YYYY-MM-DD'), 12 FROM DUAL UNION ALL
SELECT 'NVT', '20191012-01', TO_DATE('2019/10/12','YYYY-MM-DD'), 13 FROM DUAL 
)
SELECT NM, CD, DT, SEQ, DENSE_RANK() OVER(ORDER BY CD) RK
  FROM T

 


by 마농 [2019.10.18 11:24:21]

RANK
DENSE_RANK  -- 요거 쓰세요.
ROW_NUMBER
http://gurubee.net/lecture/2672

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입