집약과 자르기 - llighter/database GitHub Wiki

SQL 레벨업

SQL은 레코드 단위가 아닌 레코드의 '집합' 단위로 처리를 기술하는 것이 특징이다.

이런 사용 방식을 **집합 지향(Set-oriented)이라고 부른다.

이러한 특징이 가장 잘 드러나는 때가 GROUP BY 구, HAVING 구와, 그것과 함께 사용하는 SUM 또는 COUNT 등의 집약 함수를 사용하는 때이다.

마치며

- GROUP BY 구 또는 윈도우 함수의 PARTITION BY구는 집합을 자를 때 사용

- GROUP BY 구 또는 윈도우 함수는 내부적으로 해시 또는 정렬 처리를 실행

- 해시 또는 정렬은 메모리를 많이 사용해 만약 메모리가 부족하면 일시 영역으로 저장소를 사용해 성능 문제를 일으킴

- GROUP BY 구 또는 윈도우 함수와 CASE 식을 함꼐 사용하면 굉장히 다양한 것을 표현할 수 있음