>데이터 베이스 >MySQL 튜토리얼 >SQL에서 집계 함수를 사용할 때 'GROUP BY 표현식이 아님' 오류를 방지하려면 어떻게 해야 합니까?

SQL에서 집계 함수를 사용할 때 'GROUP BY 표현식이 아님' 오류를 방지하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-13 06:15:43497검색

How Can I Avoid

SQL의 GROUP BY 절과 집계 함수 이해

SQL의 GROUP BY 절을 사용하면 그룹화 후 어떤 속성에 액세스할 수 있는지 혼동되는 경우가 많습니다. 명확히 하자:

GROUP BY 및 비집계 열

그룹화 후 집계되지 않은 열에 액세스하려고 하면 "GROUP BY 표현식이 아님" 오류가 발생합니다. 이는 각 그룹에 여러 행이 포함될 수 있고 집계되지 않은 열의 값이 해당 행마다 다르기 때문입니다.

집계 함수: 심층 분석

반대로, 집계 함수(예: SUM, MAX, AVG 등)는 GROUP BY을 적용한 후에도 각 그룹 내의 기본 열에 액세스할 수 있습니다. 전체 그룹에 대한 단일 요약 값을 계산합니다.

예:

다음 쿼리를 고려해보세요.

<code class="language-sql">SELECT *
FROM order_details
GROUP BY order_no;</code>

이 쿼리는 order_price과 같은 집계되지 않은 열에 집계 함수를 사용하지 않고 모든 열을 선택하려고 하기 때문에 실패합니다.

그러나 이것은 유효한 쿼리입니다.

<code class="language-sql">SELECT SUM(order_price)
FROM order_details
GROUP BY order_no;</code>

여기서 SUM는 각 그룹을 처리하여 order_price 값을 합산하여 각 order_no의 총 가격을 제공합니다.

GROUP BY

에 집계되지 않은 열 포함

그룹화 후 집계되지 않은 열에 액세스하려면 해당 열을 GROUP BY 절에 포함하세요.

<code class="language-sql">SELECT order_no, SUM(order_price)
FROM order_details
GROUP BY order_no;</code>

이것은 전체 order_no와 함께 각 order_price을 올바르게 검색합니다.

위 내용은 SQL에서 집계 함수를 사용할 때 'GROUP BY 표현식이 아님' 오류를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.