Allen's 데이터 맛집

SQL : 데이터를 범주별로 통계내기 - CASE 본문

SQL/SQL

SQL : 데이터를 범주별로 통계내기 - CASE

Allen93 2023. 12. 24. 19:12

이번 포스팅에서는 현업에서 종종 쓰이는 데이터들은 SQL을 사용하여 범주별로 나누어 출력을 해보도록 하겠습니다.

 

 


 

 

데이터는 간단한 id와 봉급을 나타내는 salary가 있고 각각의 id마다 다양한 salary를 가지고 있습니다.

그리고 이것을 가지고 범주별로 통계를 내보겠습니다.

SELECT * FROM USER.TEST1
ORDER BY ID

 

 

 

개발자분들에겐 어쩌면 익숙한 바로 CASE문입니다. java의 switch문이라 생각하시면 편합니다.

where절처럼 원하는 조건값을 입력하여 범주화를 시킵니다.

이를 통해 각 salary 범주에 속해있는 숫자를 손쉽게 파악할 수 있습니다.

SELECT
   CASE
      when salary < 1000 then 'Under 10K'
      when salary between 1000 and 1900 then '10K-19K'
      when salary between 2000 and 2900 then '20K-29K'
      when salary between 3000 and 3900 then '30K-39K'
      when salary between 4000 and 4900 then '40K-49K'
      when salary >= 5000 then '50K and above'
      ELSE "UNKNOWN"
    END AS SALARY_GROUP,
    COUNT(DISTINCT id) AS COUNT
FROM USER.TEST1
GROUP BY SALARY_GROUP
ORDER BY MIN(SALARY)