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 설정에 따라 허용되는 경우가 있지만, 명시적으로 그룹 키와 집계를 구분하는 습관이 안전합니다.