집 >데이터 베이스 >MySQL 튜토리얼 >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 중국어 웹사이트의 기타 관련 기사를 참조하세요!