๋ฌธ์ œ

๐Ÿ“Œ MySQL ๋กœ ํ’€์ด

 

๐Ÿ“Œ ๋ฌธ์ œ ๋งํฌ :

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช… :

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

 

๐Ÿ“Œ ํ…Œ์ด๋ธ” :

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

NAMETYPENULLABLE

SHIPMENT_ID INT(N) FALSE
FLAVOR VARCHAR(N) FALSE
TOTAL_ORDER INT(N) FALSE

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

NAMETYPENULLABLE

SHIPMENT_ID INT(N) FALSE
FLAVOR VARCHAR(N) FALSE
TOTAL_ORDER INT(N) FALSE

 


ํ’€์ด

์ถ”์ธก) 

์ผ๋‹จ ๋‘ ํ…Œ์ด๋ธ”์€ ์—ฐ๊ด€๊ด€๊ณ„๊ฐ€ ์—†๋Š” ์ƒ๋ฐ˜๊ธฐ์™€ 7์›” ๊ธฐ๋ก์ด๋ฏ€๋กœ ๊ทธ๋ƒฅ ํ•ฉ์ณ๋„ ๋ ๊ฑฐ ๊ฐ™๋‹ค.

๋‘ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ์ด ์ด๋ฆ„์ด ๊ฐ™์œผ๋‹ˆ ํ•ฉ์ณ์„œ ๊ทธ๋ฃนํ™” ํ•˜๊ณ , ๋”ํ•œ ๊ฐ’์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœํ•˜์—ฌ 3๊ฐœ๋งŒ ์ถœ๋ ฅํ•˜๋ฉด ๋  ๋“ฏ!

 

 

์ฟผ๋ฆฌ) 

* 1์ฐจ) 

SELECT A.FLAVOR
FROM (SELECT *
    FROM FIRST_HALF 
    UNION ALL
    SELECT *
    FROM JULY ) AS A
GROUP BY A.FLAVOR
ORDER BY SUM(A.TOTAL_ORDER) DESC
LIMIT 3

 

๋ฆฌ๋ทฐ) 

UNION ์กด์žฌ๋ฅผ ์•Œ๊ณ ๋Š” ์žˆ์—ˆ๋Š”๋ฐ ์ด ์ฐธ์— ๋‹ค์‹œ ์ •๋ฆฌ

UNION ํ‚ค์›Œ๋“œ๋Š” ๋‘๊ฐœ ์ด์ƒ์˜ SELECT๋ฌธ์„ ํ•ฉ์น˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋‘ SELECT๋ฌธ์˜ ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ ์ด๋ฆ„๊ณผ ํƒ€์ž…์ด ๋™์ผ ๋˜๋Š” ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•œ ์œ ์‚ฌ ํ˜•ํƒœ์—ฌ์•ผ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ UNION์€ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ , UNION ALL ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์ค‘๋ณต ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

+ Recent posts