๐Ÿ’ป Coding/[Algorithm]SQL

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค | ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์‹๋‹น ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ - โญโญโญ

๐Ÿฉท ๋ฏผ์˜ 2024. 11. 1. 18:08

๐Ÿ—’๏ธ ๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/131123

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

 

 

๐Ÿ’ก์กฐ๊ฑด

## REST_INFO : ์‹๋‹น ์ •๋ณด

# ์Œ์‹์ข…๋ฅ˜๋ณ„๋กœ ์ฆ๊ฒจ์ฐพ๊ธฐ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์‹๋‹น -> ์Œ์‹ ์ข…๋ฅ˜, id, ์‹๋‹น์ด๋ฆ„, ์ฆ๊ฒจ์ฐพ๊ธฐ์ˆ˜ ์กฐํšŒ
# ์Œ์‹ ์ข…๋ฅ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ DESC

 

โœ๏ธ ๋‚ด ์ฝ”๋“œ

SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC

 

โœ๏ธ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ

SELECT T1.FOOD_TYPE, T1.REST_ID, T1.REST_NAME, T1.FAVORITES
FROM REST_INFO T1
JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) AS T2_MAX
     FROM REST_INFO
     GROUP BY FOOD_TYPE) T2
ON T1.FOOD_TYPE = T2.FOOD_TYPE AND T1.FAVORITES = T2.T2_MAX
ORDER BY FOOD_TYPE DESC

 

๐Ÿ“’GROUP BY์—์„œ MAX/MIN ์‚ฌ์šฉํ•˜๊ธฐ

์ฒซ๋ฒˆ์งธ ์ฝ”๋“œ์—์„œ ์ œ๋Œ€๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์€ ์ด์œ ๋Š” GROUP BY์™€ MAX๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋–„๋ฌธ์ด๋‹ค.

 

GROUP BY๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ FOOD_TYPE ๋ณ„๋กœ ํ•˜๋‚˜์˜ ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋•Œ REST_ID์™€ REST_NAME์ด ๋‹จ์ผํ•œ ๊ฐ’์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋กœ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

SELECT FOOD_TYPE, MAX(FAVORITES) AS T2_MAX
FROM REST_INFO
GROUP BY FOOD_TYPE

 

- REST_INFO ํ…Œ์ด๋ธ”์—์„œ FOOD_TYPE ๋ณ„๋กœ FAVORITES์˜ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•œ๋‹ค

- GROUP BY FOOD_TYPE ์„ ํ†ตํ•ด ์Œ์‹ ์ข…๋ฅ˜๋ณ„๋กœ ๊ทธ๋ฃน -> MAX(FAVORITES)๋ฅผ ํ†ตํ•ด ๊ฐ ์Œ์‹ ์ข…๋ฅ˜์—์„œ ๊ฐ€์žฅ ํฐ 'FAVORITES'๊ฐ’์„ ์„ ํƒ

- ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด T2 ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ์Œ์‹ ์ข…๋ฅ˜๋ณ„๋กœ ์ตœ๊ณ  ์ธ๊ธฐ๋„ 'FAVORITES'๋ฅผ ๊ฐ€์ง„ ๊ฐ’์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

 

SELECT T1.FOOD_TYPE, T1.REST_ID, T1.REST_NAME, T1.FAVORITES
FROM REST_INFO T1
JOIN (์„œ๋ธŒ์ฟผ๋ฆฌ T2) ON ์กฐ๊ฑด
ORDER BY FOOD_TYPE DESC

- T1๊ณผ T2๋ฅผ ์กฐ์ธํ•˜์—ฌ ๊ฐ ์Œ์‹ ์ข…๋ฅ˜๋ณ„๋กœ ๊ฐ€์žฅ ๋†’์€ FAVORITES ๊ฐ’์„ ๊ฐ€์ง„ ๋ ˆ์ฝ”๋“œ๋งŒ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

๐Ÿ˜Š ์˜ค๋Š˜์˜ ํ›„๊ธฐ

GROUP UP์—์„œ ์ง‘๊ณ„๋˜์ง€ ์•Š์€ ์ปฌ๋Ÿผ์„ ํ•จ๊ป˜ ์„ ํƒํ•˜๋ ค๋ฉด ์„œ๋ธŒ์ฟผ๋ฆฌ๋‚˜ ์กฐ์ธ์„ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด์— ๋งž๋Š” ํŠน์ • ํ–‰์„ ์ƒˆ๋กญ๊ฒŒ ์„ ํƒํ•ด์•ผํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.