One Value per Group
SELECT와 GROUP BY의 약속
그룹 결과의 한 칸에는 값이 하나만 들어갈 수 있습니다. 그룹 안에서 여러 값이 가능한 컬럼은 그대로 SELECT할 수 없습니다.
GROUP BY 키
집계 함수
비결정 컬럼
모호한 SELECT
category별 그룹에 name?
전자 그룹 안에는 노트북, 키보드가 함께 있습니다. 어떤 name을 보여줄지 결정할 수 없습니다.
명확한 SELECT
그룹 키 또는 집계
category처럼 GROUP BY에 있는 컬럼이나 AVG(price)처럼 집계한 값은 한 그룹에 하나로 확정됩니다.
SELECT 항목
상태
이유
category
가능
GROUP BY 키
AVG(price)
가능
집계 결과
name
오류/비결정
그룹 안에 여러 값 가능
DBMS의 함수 종속성 판단이나 MySQL 설정에 따라 허용되는 경우가 있지만, 명시적으로 그룹 키와 집계를 구분하는 습관이 안전합니다.