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

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

1์ผ_1SQL

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

๋ฌธ์ œ

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


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

SELECT B.USER_ID
     , B.NICKNAME
     , SUM(A.PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD A
    JOIN USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID
WHERE A.STATUS = 'DONE'
GROUP BY B.USER_ID
HAVING TOTAL_SALES >= 700000
ORDER BY TOTAL_SALES ASC;
  • BOARD ํ…Œ์ด๋ธ”์˜ WRITER_ID์™€ USER ํ…Œ์ด๋ธ”์˜ USER_ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ JOIN
    (๊ฒŒ์‹œํŒ ๊ธ€์“ด์ด๊ฐ€ ์œ ์ €์ด๋ฏ€๋กœ WRITER_ID = USER_ID)
  • ์™„๋ฃŒ๋œ ์ค‘๊ณ  ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ๋งŒ์„ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด WHERE์ ˆ์— STATUS๊ฐ€ 'DONE'์ธ ์กฐ๊ฑด ์ž‘์„ฑ
  • ์œ ์ € ID๋ณ„ ์ด ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ธˆ์•ก์„ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ, USER_ID ๊ธฐ์ค€์œผ๋กœ GROUP BY ํ•ด์ค€๋‹ค.
  • ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•œ USER_ID, NICKNAME๊ณผ ๊ฐ USER์˜ ์ค‘๊ณ  ๊ฑฐ๋ž˜ ์ด ๊ธˆ์•ก(SUM(A.PRICE))์„ ๊ตฌํ•ด์ฃผ๊ณ  ์ด๋ฅผ 'TOTAL_SALES'๋ผ๋Š” ๋ณ„์นญ์„ ์ค€๋‹ค.
  • ์ค‘๊ณ  ๊ฑฐ๋ž˜์˜ ์ด ๊ธˆ์•ก์ด 70๋งŒ์› ์ด์ƒ์ธ ์‚ฌ๋žŒ๋งŒ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด,
    HAVING์„ ์ด์šฉํ•˜์—ฌ TOTAL_SALES >= 700000 ์ธ ์‚ฌ๋žŒ๋งŒ ์ถœ๋ ฅ
  • ORDER BY๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๊ธˆ์•ก ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ค€๋‹ค.
  • JOIN, WHERE, GROUP BY, HAVING, ORDER BY, ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฌธ์ œ์˜€์Œ. (๋ณต์Šต์šฉ)

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

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