Checklist
GROUP BY 흔한 실수
집계 쿼리 오류는 대부분 COUNT 의미, SELECT 규칙, WHERE/HAVING 위치, 정렬 보장 착각에서 나옵니다.
오류/비결정
성능/순서
NULL 구분
COUNT 착각
COUNT(*) vs COUNT(col)
NULL 포함 여부가 달라 주문 없는 행, 미분류 값에서 결과가 바뀝니다.
SELECT 규칙
그룹 키 아닌 컬럼
그룹 안의 여러 값 중 무엇을 보여줄지 결정되지 않습니다.
HAVING 남용
행 조건을 그룹 뒤에
WHERE로 줄일 수 있는 행을 늦게 필터링하면 비용이 커질 수 있습니다.
ORDER BY 누락
결과 순서 미보장
GROUP BY 결과가 정렬되어 보이더라도 보장된 순서는 아닙니다.
NULL 그룹
NULL도 한 그룹
NULL 값끼리는 GROUP BY에서 하나의 그룹으로 묶입니다.
ROLLUP NULL
데이터 NULL과 소계 NULL
GROUPING 함수로 어떤 NULL인지 구분해야 합니다.