012. 집약 - llighter/database GitHub Wiki
SQL의 집약함수(aggregate function) 5개
COUNT
SUM
MAX
MIN
1. 여러 개의 레코드를 한 개의 레코드로 집약
CASE
식과 GROUP BY
응용
- 오류가 발생하는 쿼리
예제 추가할 것
현재 태이블을 id
필드로 그룹하하고 CASE
식에 data_type
을 지정하면, 하나의 레코드만 선택도니다. 따라서 집약함수를 사용하지 않아도 하나의 레코드를 생성할 수 있을 것이라 생각하지만 SQL의 원리(=집합론의 원리)를 위배하는 것이다.
모든 구현에서 작동하는 정답
예제 추가할 것
- 집약, 해시, 정렬
- 정렬과 해시 모두 메모리를 많이 사용하므로, 충분한 해시용(또는 정렬용) 워킹 메모리가 확보되지 않으면 스왑 이 발생한다.
- 이런 경우 TEMP 탈락 이 발생했다고 하는데 스왑이 발생하기 때문에 속도가 극적으로 저하된다.
- 최악의 경우 TEMP 영역을 모두 써버려 SQL 구문이 비정상적으로 종료 될 수 도 있다.