본문 바로가기
SQL

NTILE PARTITION BY

by sooyeoon 2024. 4. 2.

 

 

SELECT CASE WHEN RN2 = 1 THEN 'A조'
            WHEN RN2 = 2 THEN 'B조'
            WHEN RN2 = 3 THEN 'C조'
			      END AS NEW_TEAM , T2.*
FROM (SELECT NTILE(3) OVER (PARTITION BY TEAM_NM ORDER BY DBMS_RANDOM.RANDOM) AS RN2,
             TEAM_NM, SAWON_CODE,SAWON_NAME,INSERT_DATE
FROM L_TAB
WHERE TO_CHAR(INSERT_DATE,'YYYYMM') = TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYYMM')
ORDER BY RN2, TEAM_NM
) T2

 

 

기존 팀 [TEAM_NM] 에서 팀별 3명 씩 나누어 새로운 팀 [NEW_TEAM] 에 랜덤 배정

'SQL' 카테고리의 다른 글

MySQL IN 두 컬럼 이상 비교  (0) 2024.04.03
VIEW  (0) 2024.04.02
GROUP BY 가장 최근 날짜 조회  (0) 2024.03.25
특정 조건을 가진 데이터 복사 INSERT  (0) 2024.03.22
INSERT ALL  (0) 2024.03.04