ORA-00979: GROUP BY 표현식이 아닙니다
ORA-00979 오류는 SQL 쿼리의 SELECT
목록과 GROUP BY
절이 일치하지 않음을 나타냅니다. 이는 일반적으로 SELECT
문에 GROUP BY
절에 없는 열이 포함되어 있고 해당 열이 SUM
, AVG
, MIN
, MAX
, COUNT
등의 함수를 사용하여 집계되지 않을 때 발생합니다. 등등
시나리오:
쿼리에는 여러 테이블(예: review
, cs
, fact
)이 포함될 가능성이 높으며 GROUP BY
절이 SELECT
목록의 집계되지 않은 모든 열을 포함하지 않습니다. 예:
<code class="language-sql">SELECT cr.review_sk, cr.cs_sk, cf.fact_date, cr.tracking_number, cf.some_other_column -- Problem: cf.some_other_column is missing from GROUP BY FROM review cr JOIN cs ON ... JOIN fact cf ON ... GROUP BY cr.review_sk, cr.cs_sk, cf.fact_date, cr.tracking_number;</code>
해결책:
이 문제를 해결하려면 다음 중 하나를 수행하세요.
GROUP BY
절에 누락된 열을 추가합니다. SELECT
절에 집계되지 않은 GROUP BY
목록의 모든 열을 포함합니다.
누락된 열 집계: 집계 함수(예: SUM(cf.some_other_column)
)를 사용하여 열 값을 요약합니다.
추가 고려 사항:
비균등 조인: 모든 SELECT
열이 GROUP BY
에 있더라도 비균등 조인(예: t1.id > t2.id
)으로 인해 오류가 발생할 수 있습니다. 이는 GROUP BY
원칙을 위반하여 중복 행을 생성합니다. 조인 조건을 수정하거나 하위 쿼리를 사용하여 중복을 제거하세요.
GROUP BY
이해: GROUP BY
절은 지정된 열에서 동일한 값을 가진 행을 그룹화하여 집계 함수가 각 그룹에서 작동할 수 있도록 합니다. 적절한 그룹화가 없으면 데이터베이스는 집계되지 않은 열에 대한 단일 값을 결정할 수 없습니다.
SELECT
목록의 모든 열이 GROUP BY
절에 있거나 집계되었는지 확인하면 ORA-00979 오류를 해결하고 일관된 쿼리 결과를 얻을 수 있습니다.
위 내용은 SQL 쿼리에서 ORA-00979 'GROUP BY 표현식이 아님' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!