집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 집계 함수를 사용할 때 'GROUP BY 표현식이 아님' 오류를 방지하려면 어떻게 해야 합니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!