[오답정리]SQLD 추가 정리2

yellong·2020년 5월 29일
0

SQLD

목록 보기
22/27

[정리] 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'

0개의 댓글