SELECT * FROM mart.card GROUP BY 고객등급
위와 같이 GROUP BY 함수를 사용하면 아래와 같은 오류가 출력된다.

이는 MySQL에서 GROUP BY 쿼리의 동작을 더 엄격하게 제한하는 SQL 모드인, ONLY_FULL_GROUP_BY 모드 때문이다.
ONLY_FULL_GROUP_BY 모드에서는 GROUP BY 절에 포함되지 않은 컬럼을 SELECT 문에서 사용할 수 없다.
이 모드의 주요 특징과 목적은 다음과 같다:
1. 표준 SQL 준수: ONLY_FULL_GROUP_BY 모드는 SQL 표준을 더 엄격히 준수
2. 모호한 쿼리 방지: GROUP BY 절에 포함되지 않은 비집계 컬럼을 SELECT 절에서 사용할 수 없게함
3. 데이터 일관성 보장: 그룹화된 결과에서 어떤 값을 선택해야 할지 모호한 상황을 방지
4. 오류 발생: 이 모드가 활성화되면, GROUP BY 규칙을 위반하는 쿼리에 대해 오류를 발생
5. 기본 활성화: MySQL 5.7 이상 버전에서는 기본적으로 활성화되어 있음
해결방안:
1. GROUP BY 절에 모든 컬럼을 포함시킵니다.
2. 집계 함수(예: MAX, MIN, AVG 등)를 사용하여 그룹화되지 않은 컬럼을 처리합니다.
3. ONLY_FULL_GROUP_BY 모드를 비활성화합니다. (권장되지 않음)
아직 SQL을 배우는 단계여서 이 모드를 끄는게 나은지 키는게 나은지 판단이 안서기 때문에, 일다는 권장 사항 대로 이 모드를 킨 채로 진행할 예정...