# 문제
https://leetcode.com/problems/count-salary-categories/description/
# 문제 요약
income이 20000 미만이면 Low Salary
20000이상 50000 이하이면 Average Salary
50000 이상이면 High Salary
# 헷갈렸던 부분
case when 문으로 구분후 groupby를 했을때 (Average Salary, 0) 부분이 없었다
# 핵심 개념
1. category 컬럼으로 새로운 값 'Low Salary' 생성한 후 갯수세기
if절 안에서 해당 조건이면 1, 아니면 0으로 한 후 모두 더하기
select 'Low Salary' as category,
sum(if(income < 20000, 1, 0)) as accounts_count
from Accounts
2. 테이블을 합칠 때 공통 컬럼을 기준으로 하는 조인도 있지만,
테이블을 위아래로 그냥 합치는 union도 있다
여기서는 union 사용하기
파이썬으로 따지면 concat같은 느낌이다
3. 해당 조건으로 sum시킨다
sum ( if ( income < 20000, 1, 0 ) )
# 정답 코드
select 'Low Salary' as category,
sum(if(income < 20000, 1, 0)) as accounts_count
from Accounts
union
select 'Average Salary' as category,
sum(if(income between 20000 and 50000, 1, 0)) as accounts_count
from Accounts
union
select 'High Salary' as category,
sum(if(income > 50000, 1, 0)) as accounts_count
from Accounts