[정리] NTILE(A)
- NTILE 함수는 A에 명시된 값만큼 파티션을 균등하게 분할하는 함수
- NTILE(4)이면 총 4개의 파티션으로 분할이 된다.
NTILE 예시
SELECT VAL, COUNT(*) AS CNT
FROM (
SELECT NTILE(4) OVER (ORDER BY COL1) AS VAL
FROM TABLE_A
)
WHERE 1=1
GROUP BY VAL ORDER BY 1
WHERE 1=1
은 참이라는 의미로 사용된다. WHERE 1=2
는 거짓이라는 의미이다.
ORDER BY 1
은 첫번째 컬럼을 기준으로 오름차순 정렬을 하라는 뜻이다.
NTILE(4)
는 TABLE_A의 COL1의 값을 4개의 파티션으로 나눌 것이다.
[정리] WHERE에서 AND와 OR의 논리적 순서
WHERE SAL>2000 OR MGR_ID IS NULL AND CODE = 'BBB'
는 어떤 순서로 진행될까?
WHERE SAL>2000 OR (MGR_ID IS NULL AND CODE = 'BBB')
순서로 실행된다.
- OR 연산을 먼저 실행하고 싶은 경우에는, 아래처럼 괄호를 따로 써주어야한다.
(WHERE SAL>2000 OR MGR_ID IS NULL) AND CODE = 'BBB'