안녕하세요 쿼리가너무어려워서 글을 남깁니다
col1/col2/col3/col4/col5/col6
1 : 2019/ 2/ 1/ 2/ 2/ 1
2: 2019/ 2/ 2/ 1/ 1/ 2
3: 2019/ 2/ 3/ 4/ 4/ 3
4: 2019/ 2/ 4/ 3/ 3/ 4
이런 4개의 로우가있을때 1,2번로우랑 3,4번 로우랑 같은 순번을 매기려면어떻게해야될까요?
col1/col2/col3/col4/col5/col6/number
1 : 2019/ 2/ 1/ 2/ 2/ 1 /1
2: 2019/ 2/ 2/ 1/ 1/ 2 /1
3: 2019/ 2/ 3/ 4/ 4/ 3 /2
4: 2019/ 2/ 4/ 3/ 3/ 4 /2
진짜머리로안나오네요 ㅠ 순번 그룹핑해서만들기가 ㅠ
WITH T ( col1,col2,col3,col4,col5,col6 ) AS ( SELECT 2019, 2, 1, 2, 2, 1 FROM DUAL UNION ALL SELECT 2019, 2, 2, 1, 1, 2 FROM DUAL UNION ALL SELECT 2019, 2, 3, 4, 4, 3 FROM DUAL UNION ALL SELECT 2019, 2, 4, 3, 3, 4 FROM DUAL ) SELECT A.* ,ROUND(ROWNUM/2) AS NUM1 ,NTILE(2) OVER(ORDER BY ROWNUM) NUM2 FROM (SELECT col1 ,col2 ,col3 ,col4 ,col5 ,col6 FROM T ORDER BY col1,col2,col3 ) A
설명이부족해서 죄송합니다 ㅠ
주민번호형식으로 예를들면
111111-*******/ 222222-*******/222222-*******/111111-*******
/ 222222-*******111111-*******/111111-*******/222222-******* ---이 두개가 같은그룹번호
333333-*******/ 444444-*******/444444-*******/333333-*******
/ 444444-*******333333-*******/333333-*******/444444-******* ---이 두개가 같은그룹번호
666666-*******/ 999999-*******/999999-*******/666666-*******
/ 999999-*******/666666-*******/666666-*******/999999-******* ---이 두개가 같은그룹번호
이런식으로 될까요 ?ㅠ
모두 동일하다는 전제가 깔려있네요. 그래서 무시해도 된다고 한거구요?
그럼 만약 동일하지 않다면? 무시하면 안되겠네요?
이런 전제조건도 질문시 제시해 주셔야 합니다.
질문에 빠진게 너무 많네요.
WITH t AS ( SELECT '2019' c1, 2 c2, 1 c3, 2 c4, 2 c5, 1 c6 FROM dual UNION ALL SELECT '2019', 2, 2, 1, 1, 2 FROM dual UNION ALL SELECT '2019', 2, 3, 4, 4, 3 FROM dual UNION ALL SELECT '2019', 2, 4, 3, 3, 4 FROM dual ) SELECT c1, c2, c3, c4, c5, c6 , DENSE_RANK() OVER( ORDER BY c1, c2 , LEAST(c3, c4), GREATEST(c3, c4) , LEAST(c5, c6), GREATEST(c5, c6) ) dr FROM t ;