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인지 구분해야 합니다.