SQL의 절에 의한 그룹은 지정된 열에서 동일한 값을 요약 행으로 그룹화하는 데 사용됩니다. 일반적으로 각 데이터 그룹에 대한 계산을 수행하기 위해 집계 함수 (예 : Count, Max, Min, Sum, Avg)와 함께 사용됩니다. 다음은 그룹별로 사용하는 방법입니다.
기본 구문 : 쿼리 별 그룹의 기본 구문은 다음과 같습니다.
<code class="sql">SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;</code>
이 예에서, column1
데이터를 그룹화하는데 사용되며, aggregate_function(column2)
이 각 그룹에 적용된다.
예 : 열 region
및 amount
있는 sales
라는 테이블이 있다고 가정합니다. 각 지역의 총 판매량을 찾고 싶습니다. 쿼리는 다음과 같습니다.
<code class="sql">SELECT region, SUM(amount) as total_sales FROM sales GROUP BY region;</code>
이 쿼리는 region
열별로 데이터를 그룹화하고 각 그룹의 amount
을 계산합니다.
다중 열 : 쉼표로 구분 된 그룹별로 그룹에 나열하여 여러 열별로 그룹화 할 수 있습니다. 예를 들어:
<code class="sql">SELECT region, product, SUM(amount) as total_sales FROM sales GROUP BY region, product;</code>
이 쿼리는 region
과 product
별로 데이터를 그룹화하고 region
과 product
의 각 고유 한 조합에 대한 amount
을 계산합니다.
그룹 별 절을 사용하는 경우 여러 공통 골재 기능을 사용하여 그룹화 된 데이터에 대한 계산을 수행합니다. 이러한 기능에는 다음이 포함됩니다.
count () : 각 그룹의 행 수를 계산합니다. 예를 들어:
<code class="sql">SELECT region, COUNT(*) as number_of_sales FROM sales GROUP BY region;</code>
Sum () : 각 그룹의 숫자 열의 총계를 계산합니다. 예를 들어:
<code class="sql">SELECT region, SUM(amount) as total_sales FROM sales GROUP BY region;</code>
avg () : 각 그룹의 숫자 열의 평균을 계산합니다. 예를 들어:
<code class="sql">SELECT region, AVG(amount) as average_sale FROM sales GROUP BY region;</code>
max () : 각 그룹에서 열의 최대 값을 찾습니다. 예를 들어:
<code class="sql">SELECT region, MAX(amount) as max_sale FROM sales GROUP BY region;</code>
최소 () : 각 그룹에서 열의 최소값을 찾습니다. 예를 들어:
<code class="sql">SELECT region, MIN(amount) as min_sale FROM sales GROUP BY region;</code>
이러한 기능을 통해 데이터를 다양한 방식으로 요약하여 그룹화 된 데이터에 대한 통찰력을 제공 할 수 있습니다.
HAD 그룹화하기 전에 행을 필터링하는 WHERE 절과 달리, HABING 절은 생성 된 후 그룹을 필터링합니다. 함께 사용하는 방법은 다음과 같습니다.
기본 구문 : 쿼리의 구문은 다음과 같습니다.
<code class="sql">SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;</code>
예 : sales
테이블에서 총 매출이 $ 10,000보다 큰 지역을 찾으려고한다고 가정하십시오. 쿼리는 다음과 같습니다.
<code class="sql">SELECT region, SUM(amount) as total_sales FROM sales GROUP BY region HAVING SUM(amount) > 10000;</code>
이 쿼리는 먼저 region
데이터를 그룹화하고 각 지역의 총 판매량을 계산 한 다음 결과를 필터링하여 총 판매량이 $ 10,000를 초과하는 지역 만 포함하도록 필터링합니다.
위치와 결합 : 그룹화하기 전에 줄을 필터링하고 필터링 해야하는 위치를 사용할 수도 있습니다. 예를 들어:
<code class="sql">SELECT region, SUM(amount) as total_sales FROM sales WHERE amount > 0 GROUP BY region HAVING SUM(amount) > 10000;</code>
이 쿼리에서, Where 절은 먼저 음수 또는 0 금액으로 행을 필터링하고, 데이터는 region
별로 그룹화되며, Having 절은 총 판매에 따라 그룹을 필터링합니다.
SQL 쿼리에서 그룹 별 절을 사용하는 경우 피해야 할 몇 가지 잠재적 인 함정이 있습니다.
잘못된 열 참조 : Group By가있는 쿼리에서 집계 함수가 아닌 선택 목록의 모든 열은 그룹별로 그룹에 포함되어야합니다. 절을 통해 그룹에 응집되지 않은 열을 포함하는 것을 잊어 버리면 오류 또는 예상치 못한 결과가 발생할 수 있습니다. 예를 들어:
<code class="sql">SELECT region, product, SUM(amount) -- This will cause an error if 'product' is not included in GROUP BY FROM sales GROUP BY region;</code>
올바른 버전은 다음과 같습니다.
<code class="sql">SELECT region, product, SUM(amount) FROM sales GROUP BY region, product;</code>
집계 및 비 응집 열 혼합 : 적절한 그룹화없이 선택 목록에서 집계 및 비 응집 열을 혼합하면 예상치 못한 결과가 발생할 수 있습니다. 예를 들어:
<code class="sql">SELECT region, SUM(amount), amount -- This will cause an error because 'amount' is not aggregated FROM sales GROUP BY region;</code>
이 문제를 해결하려면 amount
으로 그룹을 그룹화하거나 집계 기능을 사용해야합니다.
그룹없이 사용하는 사용 : hading 절은 그룹과 함께 사용해야합니다. 그룹이없는 상태에서 사용하면 많은 SQL 데이터베이스에서 오류가 발생합니다. 예를 들어:
<code class="sql">SELECT region, SUM(amount) FROM sales HAVING SUM(amount) > 10000; -- This will cause an error because GROUP BY is missing</code>
올바른 버전은 다음과 같습니다.
<code class="sql">SELECT region, SUM(amount) FROM sales GROUP BY region HAVING SUM(amount) > 10000;</code>
이러한 함정을 알면 쿼리로보다 효과적이고 효율적인 그룹을 작성할 수 있습니다.
위 내용은 그룹 별 절을 사용하여 데이터를 어떻게 그룹화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!