907. Count Salary Categories(LeetCode)

minllny·2024년 5월 29일


어제 풀던 문제인데 일정 때문에 붙들고 있진 못했어요
근데,, 어렵더라고요 😅


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()안에서 쓰였네요 ㅎ
자세한 내용은 링크를 참고해주세요~ 🤗

profile
SQL 끄적끄적

0개의 댓글