Group
- 행을 그룹화 해서 묶음
- 집계함수를 통해 계산 가능
- COUNT, SUM, AVG, MIN, MAX, STEDEV, VARIAN
- DISTINCT
- 제거된 column을 select절에서 사용할 수 없음
- 집단 함수의 중첩은 안되기 때문에 with 절 활용
Having
- 그룹화된 결과에 조건식을 적용
- 집단함수가 없을 경우에는 where 쓰는 게 더 효율적임
- with 절로 그룹한 결과를 다시 where로 하는 방식도 있음
Order
- 정렬하는 기능
- 별칭 사용 가능
- index + 1도 사용 가능 ex) ORDER BY 2, 4;
- SELECT 목록에 없는 컬럼을 ORDER 기준으로 사용할 수 없음
LIMIT
- 개수를 제한하는 기능
- 오라클에서는 ROWNUM이라고 따로 있음
- 숫자 2개 받을 수도 있음 ex) LIMIT 10, 5;
- offset과 함께 페이지네이션 구현 가능
Top-N Query
- 등수가 높은 n개 튜플 검색
- 동점자 처리 기능 제공 기능을 제공해야 함
- 윈도우 함수 (추후 깊게 다시 공부)
- ROW_NUMBER: 일련번호 부여
- RANK: 순위 제공, 동점자 처리 제공
- SELECT 절에만 사용 가능
SELECT ROW_NUMBER() OVER(ORDER BY orderDate DESC) AS rowNo,
RANK() OVER(ORDER BY orderDate DESC) AS dateRank
FROM orders
// WHERE rowNo BETWEEN 40 AND 44; 추가시 페이지네이션