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

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

1์ผ_1SQL

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

๋ฌธ์ œ

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



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

SELECT CONCAT('/home/grep/src/', A.BOARD_ID, '/', B.FILE_ID, B.FILE_NAME, B.FILE_EXT )
			AS FILE_PATH
FROM USED_GOODS_BOARD A
    JOIN USED_GOODS_FILE B ON A.BOARD_ID = B.BOARD_ID
WHERE A.VIEWS = (SELECT MAX(VIEWS)
                 FROM USED_GOODS_BOARD
                 GROUP BY BOARD_ID
                 ORDER BY 1 DESC
                 LIMIT 1)
ORDER BY B.FILE_ID DESC;
  • JOIN์„ ํ†ตํ•ด USED_GOODS_BOARD ๊ฒŒ์‹œํŒ ํ…Œ์ด๋ธ”๊ณผ USED_GOODS_FILE ํ…Œ์ด๋ธ”์„ ํ•ฉ์ณ์ค€๋‹ค.
    (๊ฒŒ์‹œ๊ธ€ ์ •๋ณด์™€ ์ฒจ๋ถ€ํŒŒ์ผ ์ •๋ณด๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ)

  • ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒŒ์‹œ๊ธ€ ์ค‘ ์กฐํšŒ์ˆ˜('VIEWS') ๊ฐ€ ๋งŽ์€ ๊ฒŒ์‹œ๊ธ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ, WHERE์ ˆ์— ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด VIEW๊ฐ€ ์ตœ๋Œ€๊ฐ’์„ ๊ฐ€์งˆ ๋•Œ์˜ ๋ฐ์ดํ„ฐ๋งŒ์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค.

  • CONCAT ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ FILE_PATH์— ๋“ค์–ด๊ฐˆ ์ฒจ๋ถ€ํŒŒ์ผ ์ด๋™๊ฒฝ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

  • ORDER BY๋ฅผ ํ†ตํ•ด 'FILE_ID' ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.

  • ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VIEWS ๊ฐ’์ด ์ตœ๋Œ€์ผ ๋•Œ์˜ ์ฒจ๋ถ€ํŒŒ์ผ ๊ด€๋ จ ์ •๋ณด๋“ค์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์˜€์Œ.

  • ๐ŸŒŸ๐ŸŒŸ CONCAT ์‚ฌ์šฉ๋ฒ•, ํŠน์ • ๊ฐ’์ด ์ตœ๋Œ€/์ตœ์†Œ๊ฐ’์„ ๊ฐ€์งˆ ๋•Œ ๊ทธ ๋ฐ์ดํ„ฐ์˜ ๋‹ค๋ฅธ ์ปฌ๋Ÿผ ๊ฐ’์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ• ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ณต์Šต!

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

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