최대 1 분 소요

상황

  • 문제 링크
  • WITH 문에서 GROUP BY 로 집계되지 않는 column을 SELECT문에서 사용
  • 문제가 발생한 코드 예시
    WITH 
      ALTERED_FISH_INFO AS (
          SELECT FISH_TYPE,
              CASE 
                  WHEN LENGTH < 10 OR LENGTH IS NULL THEN 10
                  ELSE LENGTH
              END AS LENGTH
          FROM FISH_INFO
          GROUP BY FISH_TYPE
      )
    ...
    
    • 위 코드에서는 FISH_TYPE만으로 GROUP BY했지만, LENGTH는 집계 함수(MAX, MIN, AVG 등) 없이 그대로 SELECT 되었기 때문에 sql_mode=only_full_group_by 환경에서는 오류가 발생함.

해결 방법

  • GROUP BY에 명시된 컬럼만 SELECT에서 직접 사용할 수 있음
    • → 나머지 컬럼은 집계 함수로 감싸거나,
    • → 애초에 GROUP BY가 불필요하다면 제거해야 함

태그: ,

카테고리:

업데이트: