
어제 풀던 문제인데 일정 때문에 붙들고 있진 못했어요
근데,, 어렵더라고요 😅
SELECT category
, (CASE WHEN COUNT(*) = 0 THEN 0 ELSE COUNT(*) END) accounts_count
FROM (
SELECT *
, (CASE WHEN income < 20000 THEN 'Low Salary'
WHEN income < 50000 THEN 'Average Salary'
ELSE 'High Salary' END) category
FROM Accounts
) AS T
GROUP BY category
어제 짜본 쿼리(⬆)는 만약 주어진 테이블에서 어느 한 카테고리에 속하는 income이 없다면 그 카테고리는 아예 출력이 안됩니다,,,
다시 시도해보고 돌아올게욥 (。・・)ノ
.
.
.
.
네..! 결국 답을 봐버렸습니다 ㅋㅋㅋ
SELECT "Low Salary" AS category,
sum(income < 20000) AS accounts_count
FROM Accounts
UNION
SELECT "Average Salary" AS category,
sum(income BETWEEN 20000 AND 50000) AS accounts_count
FROM Accounts
UNION
SELECT "High Salary" AS category,
sum(income > 50000) AS accounts_count
FROM Accounts
union 형태가 쓰이려나..? 생각은 했지만 실천은 하지 않은 나..!
또 SUM() 안에 조건문을 써주었는데 이 구문이 지난 문제에서도 비슷하게 쓰였었어요 .. ㅎㅎ
https://velog.io/@minllny/1174.-Immediate-Food-Delivery-IILeetCode
지난 문제에서는 AVG()안에서 쓰였네요 ㅎ
자세한 내용은 링크를 참고해주세요~ 🤗