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

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

1์ผ_1SQL

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

๋ฌธ์ œ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL ๋ฌธ์ œ
  • ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์‹๋‹น ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ / ๋ ˆ๋ฒจ 3
  • ๋ฌธ์ œ ๋‚ด์šฉ : ํ•˜๋‹จ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ [๋งํฌ]

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

SELECT FOOD_TYPE
    , REST_ID
    , REST_NAME
    , FAVORITES
FROM REST_INFO
WHERE 
    (FOOD_TYPE, FAVORITES) 
    IN 
    (SELECT FOOD_TYPE, MAX(FAVORITES)
    FROM REST_INFO
    GROUP BY FOOD_TYPE)
ORDER BY FOOD_TYPE DESC;
  • ๋จผ์ €, ์Œ์‹ ์ข…๋ฅ˜๋ณ„๋กœ ์ฆ๊ฒจ์ฐพ๊ธฐ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์‹๋‹น ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ, GROUP BY์˜ ๊ธฐ์ค€์ด 'FOOD_TYPE'์ด๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธ
  • 'FOOD_TYPE' ๊ธฐ์ค€์œผ๋กœ GROUP BYํ•œ ํ›„, ๊ธฐ์ค€์ด ๋˜๋Š” 'FOOD_TYPE'๊ณผ MAX(FAVORITES) ๋Š” ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅ. ํ•˜์ง€๋งŒ,MAX(FAVORITES)์˜ ์ •๋ณด์™€ ์ผ์น˜ํ•˜๋Š” ๋‹ค๋ฅธ ์ปฌ๋Ÿผ๊ฐ’(REST_ID, REST_NAME)๋“ค์„ ์ถœ๋ ฅํ•  ์ˆ˜๊ฐ€ ์—†์Œ
    ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ GROUP BY ์ ˆ์—๋Š” GROUP BY์˜ ๊ธฐ์ค€ ์ปฌ๋Ÿผ๊ณผ, ์ง‘๊ณ„ํ•จ์ˆ˜ ํ˜•ํƒœ์˜ ์ปฌ๋Ÿผ๋งŒ์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์œ„์˜ (์Œ์‹ ์ข…๋ฅ˜, MAX(์ฆ๊ฒจ์ฐพ๊ธฐ ์ˆ˜)) ๋ฐ์ดํ„ฐ๋“ค์„ ์„œ๋ธŒ์ฟผ๋ฆฌ ํ˜•ํƒœ๋กœ ์ง‘์–ด๋„ฃ๊ณ , (์Œ์‹ ์ข…๋ฅ˜, ์ฆ๊ฒจ์ฐพ๊ธฐ ์ˆ˜)๊ฐ€ (์Œ์‹ ์ข…๋ฅ˜, MAX(์ฆ๊ฒจ์ฐพ๊ธฐ ์ˆ˜))์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ์กฐ๊ฑด์„ ์ด์šฉํ•ด์•ผํ•จ.
  • WHERE์ ˆ์— ์œ„์—์„œ ๊ตฌํ•œ (FOOD_TYPE, FAVORITES)๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ๋งŒ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ถœ๋ ฅ
    (์ฆ‰ ๊ฐ ์Œ์‹ ์ข…๋ฅ˜๋ณ„ ์ฆ๊ฒจ์ฐพ๊ธฐ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์ •๋ณด๋ฅผ WHERE๋ฅผ ํ†ตํ•ด ํ•„ํ„ฐ๋ง)
  • ORDER BY๋ฅผ ์ด์šฉํ•˜์—ฌ ์Œ์‹ ์ข…๋ฅ˜๋ณ„๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

ํŠน์ • ์ปฌ๋Ÿผ์ด ์ตœ๋Œ€๊ฐ’(๋˜๋Š” ์ตœ์†Œ๊ฐ’)์„ ๊ฐ€์งˆ ๋•Œ ๊ทธ ์ปฌ๋Ÿผ์˜ ๋‹ค๋ฅธ ๊ฐ’๋“ค์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์˜€์Œ. ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ตฌํ•œ ๊ฐ’์„ ์ด์šฉํ•ด ์กฐ๊ฑด์„ ์ฃผ์–ด ํ•ด๊ฒฐํ•ด์ค€๋‹ค.

profile
์งˆ๋ฌธ์€ ๊ณ„์†๋ผ ์•„์˜ค์—

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