>데이터 베이스 >MySQL 튜토리얼 >SQL에서 숫자 데이터를 범위로 그룹화하려면 어떻게 해야 합니까?

SQL에서 숫자 데이터를 범위로 그룹화하려면 어떻게 해야 합니까?

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

How Can I Group Numerical Data into Ranges in SQL?

수치 데이터 비닝을 위한 SQL 기법

이 가이드에서는 SQL 데이터베이스 내에서 숫자 데이터를 정의된 범위로 분류하는 방법을 보여줍니다. 숫자 열(예: "점수")이 있는 테이블이 있다고 가정해 보세요. 목표는 각 범위에 속하는 점수 수를 보여주는 요약을 생성하는 것입니다.

예시:

요약 테이블은 다음과 같습니다.

Score Range Frequency
0-9 11
10-19 14
20-29 3
... ...

SQL Server 2000 이상에서 이를 달성하는 방법은 다음과 같습니다.

방법 1: 하위 쿼리 내 CASE 표현식

이 방법은 하위 쿼리 내부의 CASE 표현식을 사용하여 각 점수에 범위 레이블을 할당한 다음 외부 쿼리를 사용하여 각 범위 내에서 발생 횟수를 계산합니다.

<code class="language-sql">SELECT t.range AS "Score Range", COUNT(*) AS "Frequency"
FROM (
  SELECT score,
         CASE  
           WHEN score BETWEEN 0 AND 9 THEN '0-9'
           WHEN score BETWEEN 10 AND 19 THEN '10-19'
           ELSE '20-99'  -- Handle scores outside defined ranges
         END AS range
  FROM scores
) t
GROUP BY t.range;</code>

방법 2: 메인 쿼리의 CASE 표현식

또는 CASE 표현식을 기본 쿼리에 직접 삽입하여 구조를 약간 단순화할 수도 있습니다.

<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'  -- Handle scores outside defined ranges
    END AS "Score Range",
    COUNT(*) AS "Frequency"
FROM scores
GROUP BY 
    CASE  
        WHEN score BETWEEN 0 AND 9 THEN '0-9'
        WHEN score BETWEEN 10 AND 19 THEN '10-19'
        ELSE '20-99'
    END;</code>

이러한 방법은 데이터를 사용자 정의 범위로 효율적으로 그룹화하고 요약하여 데이터 분포에 대한 귀중한 통찰력을 제공합니다. 특정 점수 범위에 맞게 CASE 문을 조정하는 것을 잊지 마세요. 정의된 범위를 벗어난 값에 대한 오류 처리를 추가해 보세요.

위 내용은 SQL에서 숫자 데이터를 범위로 그룹화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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