Tools/- SQL

[SQL] Leetcode | 1907. Count Salary Categories ์˜ˆ์ œ ํ’€์ด

์Šค์œ„๋ฏผ 2025. 2. 1. 15:32

๋ฌธ์ œ

https://leetcode.com/problems/count-salary-categories/

 

์ฝ”๋“œ

ํƒ€ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•œ ํ’€์ด

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

 

๋ฌธ์ œ ํ’€์ด

case when๊ณผ group by๋กœ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜๋ฉด

average salary์— ํ•ด๋‹นํ•˜๋Š” id๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— 0์ด ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์•„์˜ˆ ์ƒ๋žต์ด ๋œ๋‹ค.

 

๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ์˜ ๊ด€๊ฑด์€ ๊ฐ’์ด 0์ธ average salary๋„ ๊ฒฐ๊ณผ์— ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ทธ ๋ฐฉ๋ฒ•์œผ๋กœ union์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋‹ค

 

low salary, avaerage salary, high salary์„ ์ง‘๊ณ„ํ•œ ํ…Œ์ด๋ธ” 3๊ฐœ๋ฅผ ๊ฐ๊ฐ ๋งŒ๋“ค์–ด์ฃผ๊ณ 

union์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ•ฉ์ณ์ฃผ๋ฉด ๋œ๋‹ค!

 

๋А๋‚€ ์ 

category ์ปฌ๋Ÿผ์„ ์ง์ ‘ ๊ฐ’์„ ๋„ฃ์–ด์„œ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ

๋‚˜๋Š” ํ•œ๊บผ๋ฒˆ์— 3๊ฐœ์˜ ํ–‰์— ๋Œ€ํ•œ ๊ฐ’์„ ์ง‘์–ด๋„ฃ์œผ๋ ค๊ณ  ํ–ˆ๋‹ค. (๊ทธ๋Ÿฐ ๋ฐฉ๋ฒ•์€ ์—†๋Š” ๋“ฏ?)

 

์ปฌ๋Ÿผ์— ์ง์ ‘ ๊ฐ’์„ ๋„ฃ์„ ๋•Œ๋Š” ๋‹จ์ผํ–‰๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ 

union์„ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์ค‘ํ–‰์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  group by ์ง‘๊ณ„๋Š” ๊ฐ’์ด 0์ธ ๊ฒƒ์€ ์ถœ๋ ฅ์„ ์•ˆํ•ด์ค€๋‹ค ! (๋ช…์‹ฌ ๋˜ ๋ช…์‹ฌ ~)