MySQL

MySQL에서 발생하는 ONLY_FULL_GROUP_BY 오류 원인과 해결 방법

jjjp9966 2025. 1. 14. 22:38

MySQL에서 ONLY_FULL_GROUP_BY 모드가 활성화되어 있을 때, GROUP BY 절에서 집계 함수 없이 포함되지 않은 컬럼을 SELECT 절에 사용할 경우, 다음과 같은 오류가 발생할 수 있습니다.

 

... which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by ...

 

아래 예시 쿼리에서는 fish_name이 GROUP BY 절에 포함되지 않아 오류가 발생합니다.

SELECT
    COUNT(*) AS fish_count,
    n.fish_name -- 오류 원인
FROM
    fish_name_info AS n
JOIN
    fish_info AS i ON n.fish_type = i.fish_type
GROUP BY
    n.fish_type
ORDER BY
    fish_count DESC;

 

이 오류를 해결하려면, SELECT 절에 사용된 모든 컬럼을 GROUP BY 절에 추가해야 합니다. 다음과 같이 fish_name을 GROUP BY 절에 포함시키면 해결됩니다.

SELECT
    COUNT(*) AS fish_count,
    n.fish_name
FROM
    fish_name_info AS n
JOIN
    fish_info AS i ON n.fish_type = i.fish_type
GROUP BY
    n.fish_type, n.fish_name
ORDER BY
    fish_count DESC;

 

'MySQL' 카테고리의 다른 글

MySQL에서 소수점 이하를 버리고 정수 몫 구하는 방법  (0) 2025.01.12