๐Ÿ–ฅ๏ธ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/SQL

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [SQL] ์ฃผ๋ฌธ๋Ÿ‰์ด ๋งŽ์€ ์•„์ด์Šคํฌ๋ฆผ๋“ค ์กฐํšŒํ•˜๊ธฐ

rtw0202 2026. 2. 17. 13:39

1. ๋ฌธ์ œ ์„ค๋ช…

๋‹ค์Œ์€ ์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ์˜ ์ƒ๋ฐ˜๊ธฐ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ๋‹ด์€ FIRST_HALF ํ…Œ์ด๋ธ”๊ณผ 7์›”์˜ ์•„์ด์Šคํฌ๋ฆผ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ๋‹ด์€ JULY ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. FIRST_HALF ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, SHIPMENT_IDFLAVORTOTAL_ORDER๋Š” ๊ฐ๊ฐ ์•„์ด์Šคํฌ๋ฆผ ๊ณต์žฅ์—์„œ ์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ๊นŒ์ง€์˜ ์ถœํ•˜ ๋ฒˆํ˜ธ, ์•„์ด์Šคํฌ๋ฆผ ๋ง›, ์ƒ๋ฐ˜๊ธฐ ์•„์ด์Šคํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋Ÿ‰์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. FIRST_HALF ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋Š” FLAVOR์ž…๋‹ˆ๋‹ค. FIRST_HALFํ…Œ์ด๋ธ”์˜ SHIPMENT_ID๋Š” JULYํ…Œ์ด๋ธ”์˜ SHIPMENT_ID์˜ ์™ธ๋ž˜ ํ‚ค์ž…๋‹ˆ๋‹ค.

JULY ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, SHIPMENT_IDFLAVORTOTAL_ORDER ์€ ๊ฐ๊ฐ ์•„์ด์Šคํฌ๋ฆผ ๊ณต์žฅ์—์„œ ์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ๊นŒ์ง€์˜ ์ถœํ•˜ ๋ฒˆํ˜ธ, ์•„์ด์Šคํฌ๋ฆผ ๋ง›, 7์›” ์•„์ด์Šคํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋Ÿ‰์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. JULY ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋Š” SHIPMENT_ID์ž…๋‹ˆ๋‹ค. JULYํ…Œ์ด๋ธ”์˜ FLAVOR๋Š” FIRST_HALF ํ…Œ์ด๋ธ”์˜ FLAVOR์˜ ์™ธ๋ž˜ ํ‚ค์ž…๋‹ˆ๋‹ค. 7์›”์—๋Š” ์•„์ด์Šคํฌ๋ฆผ ์ฃผ๋ฌธ๋Ÿ‰์ด ๋งŽ์•„ ๊ฐ™์€ ์•„์ด์Šคํฌ๋ฆผ์— ๋Œ€ํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ณต์žฅ์—์„œ ์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ๋กœ ์ถœํ•˜๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐ™์€ ๋ง›์˜ ์•„์ด์Šคํฌ๋ฆผ์ด๋ผ๋„ ๋‹ค๋ฅธ ์ถœํ•˜ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

7์›” ์•„์ด์Šคํฌ๋ฆผ ์ด ์ฃผ๋ฌธ๋Ÿ‰๊ณผ ์ƒ๋ฐ˜๊ธฐ์˜ ์•„์ด์Šคํฌ๋ฆผ ์ด ์ฃผ๋ฌธ๋Ÿ‰์„ ๋”ํ•œ ๊ฐ’์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์ƒ์œ„ 3๊ฐœ์˜ ๋ง›์„ ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

2. ์ถœ๋ ฅ ์˜ˆ์‹œ

 

3. ๋ฌธ์ œ ๋‹ต์•ˆ

SELECT 
    t.flavor
FROM (
    SELECT 
      f.flavor,
      SUM(f.total_order) + SUM(j.total_order) as final_total_order
      FROM FIRST_HALF f
      JOIN JULY j
      ON f.flavor = j.flavor
      GROUP BY f.flavor
    ) t
ORDER BY t.final_total_order DESC
LIMIT 3;