>데이터 베이스 >MySQL 튜토리얼 >SQL의 GROUP BY 절을 사용하여 데이터를 범위로 집계하려면 어떻게 해야 합니까?

SQL의 GROUP BY 절을 사용하여 데이터를 범위로 집계하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-17 21:27:11577검색

How Can I Use SQL's GROUP BY Clause to Aggregate Data into Ranges?

데이터 범위 집계를 위한 SQL GROUP BY

다양한 범위에 걸쳐 데이터 분포를 분석하는 것은 데이터 분석의 중요한 측면입니다. SQL의 GROUP BY 절은 데이터를 사전 정의된 그룹으로 집계하는 강력한 메커니즘을 제공하여 간결한 요약 테이블 및 보고서 생성을 용이하게 합니다.

범위 기반 그룹 만들기

데이터를 특정 범위로 분류하기 위해 CASE WHEN 문을 활용하여 정의된 조건에 따라 새 열에 값을 할당합니다. 새로 생성된 이 열은 GROUP BY 절을 사용하여 데이터를 그룹화하는 기초로 사용됩니다.

예시: 점수 범위 그룹화

특정 간격(예: 0-9, 10-19, 20-29) 내에서 점수의 빈도를 결정해야 하는 시나리오를 생각해 보겠습니다. 다음 쿼리는 이러한 점수 범위를 나타내는 새 열을 구성합니다.

<code class="language-sql">SELECT
  CASE
    WHEN score BETWEEN 0 AND 9 THEN '0-9'
    WHEN score BETWEEN 10 AND 19 THEN '10-19'
    ELSE '20-99'
  END AS score_range
FROM scores;</code>

이 쿼리는 각 점수를 해당 범위에 할당하는 score_range 열을 생성합니다.

GROUP BY를 사용한 집계

각 범위 내의 점수 수를 계산하기 위해 COUNT(*) 절과 함께 GROUP BY 집계 함수를 사용합니다. 아래 쿼리는 이를 달성합니다.

<code class="language-sql">SELECT
  score_range,
  COUNT(*) AS score_count
FROM (
  SELECT
    CASE
      WHEN score BETWEEN 0 AND 9 THEN '0-9'
      WHEN score BETWEEN 10 AND 19 THEN '10-19'
      ELSE '20-99'
    END AS score_range
  FROM scores
) AS ranged_scores
GROUP BY
  score_range;</code>

출력

결과 테이블에는 정의된 범위 전체의 점수 분포에 대한 명확한 개요를 제공하는 score_rangescore_count라는 두 개의 열이 표시됩니다.

위 내용은 SQL의 GROUP BY 절을 사용하여 데이터를 범위로 집계하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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