본문 바로가기
카테고리 없음

[Leetcode/SQL] 1907. Count Salary Categories

by 리토스송 2024. 8. 20.

https://leetcode.com/problems/count-salary-categories/description/?envType=study-plan-v2&envId=top-sql-50

문제 설명

Accounts 테이블에서 income 액수별로 카테고리를 나누어 그 카테고리에 해당하는 계좌의 수를 출력하라. 

 

최종 쿼리

 

select 'Low Salary' as Category
      ,sum(income <20000) as accounts_count
from Accounts

union all 
select 'Average Salary' as Category
        ,sum(income>=20000 and income <=50000) as accounts_count
from accounts
union all 

select 'High Salary' as Category
        ,sum(income >50000) as accounts_count
from accounts

 

쿼리 설명 및 느낀 점

처음엔 문제를 보고 case when과 group by를 사용해서 카테고리별로 해당하는 계좌의 수를 출력하면 되는구나 생각을 했지만 Average Salary 조건에 해당하는 계좌의 수가 없기 때문에 Average Salary Row가 출력이 안되는 문제가 생겼다. 

조건에 해당하지 않더라도 그 카테고리의 수가 0이라는 것까지 출력을 하려면  3가지의 카테고리 조건을 따로 적어준 후 union all을 사용하여 row들을 합쳐주어 출력할 수 있다는 것을 알게 되었다.