이번 글에서는 ORA-00937: not a single-group group function 에러에 대하여 알아보겠습니다.
ORA-00937: 단일 그룹의 그룹 함수가 아닙니다.
ORA-00937: "not a single-group group function"
쿼리를 짜다가 다음과 같은 에러가 종종 발생할 때가 있습니다.
예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.
아래의 쿼리는 사원번호의 수(존재하는 사원번호가 몇 개인지)와 사원명을 조회하는 쿼리입니다.
위의 쿼리를 실행하니 ORA-00937: "not a single-group group function" 에러가 발생하였습니다.
이 에러는 그룹 함수를 사용하였는데 GROUP BY 절을 사용하지 않아 발생한 에러입니다.
위의 쿼리에서 COUNT() 라는 함수가 사용되었는데 일명 그룹 함수라고 불립니다. 그룹 함수로 불리는 함수들이 많이 있는데 SUM(), AVG(), COUNT(*) 등 그룹으로 묶어서 처리 해야하는 함수들을 말합니다.
해결 방법
그룹 함수를 사용하면 GROUP BY절을 추가해줍니다.
그리고 GROUP BY 절에는 SELECT 절에 있는 모든 컬럼을 작성합니다.
GROUP BY절을 추가하여 다시 쿼리를 시작해 보도록 하겠습니다.
GROUP BY 절을 추가해주니까 정상적으로 쿼리가 실행되는 것을 확인할 수 있습니다.
References