728x90
사용 프로그램 & 버젼 등 환경
Oracle 11g
프로그래머스
메세지
ORA-00937 : not a single-group group function
상황
GROUP BY + 서브쿼리로 이용하여, 여러 날짜(DAY)의 HOUR를 그루핑해서 조회할려다가 에러 발생
SELECT HOUR, DATETIME, COUNT(DATETIME) AS COUNT -- FM 공백제거, HH24 시간만 24시제로 표시
FROM (
SELECT TO_CHAR(DATETIME,'FMHH24') AS HOUR, DATETIME
FROM ANIMAL_OUTS
**GROUP BY DATETIME** -- ORA-00937: not a single-group group function
)
ORDER BY DATETIME
원인
GROUP BY 형식을 잘몰라서 생기는 오류
GROUP BY에 지정한 컬럼과 SELECT의 지정한 컬럼이 같아야한다. 한쪽에 컬럼 세팅이 빠져서 생기는 오류
집계함수를 제외하면 컬럼명을 양 쪽에 모두 공유해야한다
해결
위에서는 별칭인 HOUR로는 연계가 안되기 때문에 컬럼을 직접적으로 선언하던가
또는 DATETIME으로 별칭을 짜면 해결 가능
SELECT HOUR, DATETIME -- COUNT(DATETIME) AS COUNT를 지우면 ORA-00937 해결
FROM (
SELECT TO_CHAR(DATETIME,'FMHH24') AS HOUR, DATETIME
FROM ANIMAL_OUTS
GROUP BY DATETIME
)
ORDER BY DATETIME
728x90
반응형