SW/Database / / 2024. 12. 1. 14:40

ORA-00979: Not a GROUP BY Expression / 원인과 해결 방법

반응형

ORA-00979 오류 설명

ORA-00979 오류는 GROUP BY 절을 사용할 때 집계되지 않은 열이 포함될 경우 발생합니다.

 

ORA-00979: Not a GROUP BY Expression / 원인과 해결 방법

 

 

ORA-00979 오류 설명

이 오류는 SQL 쿼리에서 GROUP BY 절과 집계 함수(Aggregate Function)를 사용할 때 집계되지 않은 열이 포함되어 있을 때 발생합니다. GROUP BY 절에 포함되지 않은 열은 SELECT 목록에서 사용할 수 없습니다.

오류 원인

ORA-00979 오류의 주요 원인은 다음과 같습니다:

  1. GROUP BY 누락: SELECT 절에 GROUP BY 절에 포함되지 않은 열이 있을 때.
  2. 집계 함수 오류: SUM, COUNT, AVG와 같은 집계 함수 사용 시 적절한 GROUP BY 구성 누락.
  3. SQL 문법 실수: SELECT와 GROUP BY 절 간의 불일치.

해결 방법 및 명령어 예시

ORA-00979 오류를 해결하기 위해 다음 단계를 수행하세요:

1. GROUP BY 절 수정

쿼리의 SELECT 절에 있는 모든 열이 GROUP BY 절에 포함되었는지 확인합니다.

-- 문제 발생 예시
SELECT department_id, COUNT(employee_id)
FROM employees;

-- 해결 예시
SELECT department_id, COUNT(employee_id)
FROM employees
GROUP BY department_id;

2. 집계 함수 점검

집계되지 않은 열이 SELECT 절에 포함되지 않도록 수정합니다.

-- 문제 발생 예시
SELECT job_id, department_id, COUNT(employee_id)
FROM employees
GROUP BY job_id;

-- 해결 예시
SELECT job_id, department_id, COUNT(employee_id)
FROM employees
GROUP BY job_id, department_id;

3. 쿼리 구조 점검

SQL 문법에 맞게 쿼리를 재구성합니다. 필요한 열을 GROUP BY에 추가합니다.

-- 문제 발생 예시
SELECT manager_id, COUNT(employee_id)
FROM employees
GROUP BY department_id;

-- 해결 예시
SELECT manager_id, department_id, COUNT(employee_id)
FROM employees
GROUP BY manager_id, department_id;

간단 요약

  • ORA-00979 오류는 GROUP BY 절과 SELECT 절의 열 불일치로 발생합니다.
  • 해결 방법: SELECT 목록과 GROUP BY 절을 일치시키고 집계되지 않은 열을 제거합니다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유