쿼리를 작성하다가 다음 같은 오류를 만났다.
SQL Error : ORA-00979 : GROUP BY 표현식이 아닙니다
이 오류는 집계 함수를 사용할 때, 집계 함수에 쌓이지 않는 컬럼들은 전부 group by 리스트에
있어야 하는데 ... 이 중에 빠진게 있다는 말이 되겠다.
( 집계 합수 : sum(), count()... 등등 )
다음의 예를 들어 보면 쉽게 이해가 될 것이라 사료된다.
SELECT
a.ID,
a.column1,
sum(NVL(b.VALUE, 0))
FROM TEST_TABLE a
LEFT JOIN TEST_TABLE b ON ( a.ID= b.ID AND a.TYPE = b.TYPE AND b.TYPE = 8 )
WHERE a.ID = 1111
GROUP BY a.ID, a.column1;
대충 이런 구문이 있다고 한다면, 붉게 표시한 것과 같이 표현 되어야 한다는 것이다.
즉, GROUP BY를 사용하려면 select문에 들어가는 컬럼은 GROUP BY에 추가 되거나,
집계 함수로 표현 되거나 해야 한다.
'DataBase > SQL' 카테고리의 다른 글
[SQL] ISNULL()함수 사용법 (0) | 2013.02.13 |
---|---|
[SQL] DISTINCT와 PARTITION BY구문 사용법 (0) | 2013.02.13 |
[SQL] between구문 사용법 (0) | 2013.02.13 |
[SQL] 테이블 삭제시 제약 조건제거 (0) | 2013.02.13 |
[SQL] select쿼리 사용시 유용한 like구문 사용법 (0) | 2013.02.13 |