
ORA-00937: not a single-group group function
오류에 대하여
SELECT DECODE(SUBSTR(EMP_NO, 8, 1),'1','남','2','여'), COUNT(*)
FROM EMPLOYEE;
해당 쿼리를 실행하니 오류가 발생한다
우리의 친구 파파고를 실행하여 해석하면 이렇게 나온다.
ORA-00937: not a single-group group function
ORA-00937: 단일 그룹 함수가 아님
해당 쿼리는 'DECODE'와 'COUNT(*)'를 사용해서 성별에 따른 직원수를 세려는 식으로 보인다.
주민등록번호에서 8번째자리가 1일때는 남자 , 2일때는 여자를 조회해서 남/여 직원수를 알아보려고 하는것 같다.
ORA-00937 에러가 발생하는 이유는
그룹함수를 사용했는데 GROUP BY절을 사용하지 않아 발생한 에러다.
COUNT(*)는 SUM(), AVG()와 더불어 그룹으로 묶어서 처리해야하는 함수다.
GROUP BY절 제시
⚡ GROUP BY절 제시
SELECT DECODE(SUBSTR(EMP_NO, 8, 1), '1', '남', '2', '여') AS GENDER, COUNT(*) FROM EMPLOYEE GROUP BY DECODE(SUBSTR(EMP_NO, 8, 1), '1', '남', '2', '여');GROUP BY 절을 제시해서
EMP_NO(주민등록번호) 8번째 자리가 '1'일때는 '남', '2'일때는 '여'자를 반환하고 그룹화된 결과를 바탕으로
COUNT(*)를 통해 각 성별의 직원수를 반환한다
정상적으로 여/남 합계가 반환된것을 볼수 있다.