01/31 SQL ๋ฌธ์ œํ’€์ด(๐ŸŒŸ๐ŸŒŸ)

Data Architect / Engineerยท2024๋…„ 1์›” 31์ผ
1

1์ผ_1SQL

๋ชฉ๋ก ๋ณด๊ธฐ
20/63
post-thumbnail

๋ฌธ์ œ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL ๋ฌธ์ œ
  • ๊ฐ€๊ฒฉ๋Œ€ ๋ณ„ ์ƒํ’ˆ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ / ๋ ˆ๋ฒจ 2
  • ๋ฌธ์ œ ๋‚ด์šฉ : ํ•˜๋‹จ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ [๋งํฌ]https://school.programmers.co.kr/learn/courses/30/lessons/131530

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ Query

SELECT
    CASE WHEN PRICE >= FLOOR(PRICE/10000)*10000 THEN FLOOR(PRICE/10000)*10000
    END AS PRICE_GROUP
    , COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP ASC;
  • ๋จผ์ € 'PRICE' ์ปฌ๋Ÿผ์„ 10000 ๋‹จ์œ„๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ–ˆ์Œ
  • CASE WHEN ~ THEN ~ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ, ๊ฐ ๊ตฌ๊ฐ„๋ณ„๋กœ 10000์˜ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฅ˜๋ฅผ ํ•˜๊ธฐ ์‹œ์ž‘. (PRICE/10000) ๊ฐ’์˜ ์ •์ˆ˜ ๋ถ€๋ถ„๋งŒ์„ ์ทจํ•˜๊ณ , ๊ทธ ์ˆซ์ž์— 10000์„ ๊ณฑํ•˜๋ฉด 10000์˜ ๋‹จ์œ„๋กœ ๊ทธ๋ฃนํ•‘ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์ ‘๊ทผ
  • ์œ„์˜ ๊ณ„ํš์— ๋”ฐ๋ผ, (FLOOR(PRICE/10000)*10000)์˜ ๊ฐ’์ด PRICE๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด , FLOOR(PRICE/10000)*10000 ๊ฐ’์œผ๋กœ ์น˜ํ™˜
  • ์ดํ›„, GROUP BY๋ฅผ ์ด์šฉํ•˜์—ฌ 10000 ๋‹จ์œ„์˜ ๊ธฐ์ค€๊ฐ’ ๋ณ„ ์ œํ’ˆ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด์คŒ. 'PRICE_GROUP' ๊ธฐ์ค€์œผ๋กœ GROUP BY ํ›„ COUNT(*)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ํ•ญ๋ชฉ๋ณ„ ๊ฐœ์ˆ˜ ๊ตฌํ•ด์คŒ
  • ORDER BY ์ด์šฉํ•˜์—ฌ 'PRICE_GROUP' ์ปฌ๋Ÿผ๋ณ„๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
  • ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ GROUP BY์™€ CASE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๊ฐ„๋ณ„ ์ง‘๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€์Œ.
profile
์งˆ๋ฌธ์€ ๊ณ„์†๋ผ ์•„์˜ค์—

0๊ฐœ์˜ ๋Œ“๊ธ€