์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

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

minjgziii 2024. 1. 26. 17:59

๐Ÿ“ ๋ฌธ์ œ

 

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

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

programmers.co.kr

 

 

๐Ÿ“ ํ’€์ด

โŒ ๋‚ด๊ฐ€ ์ฒ˜์Œ ์“ด ํ‹€๋ฆฐ ์ฝ”๋“œ โŒ

SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE) AS TOTAL_SALES
FROM USED_GOODS_USER AS U
JOIN USED_GOODS_BOARD AS B
ON U.USER_ID = B.WRITER_ID
WHERE B.STATUS = 'DONE' AND SUM(B.PRICE) >= 70000
GROUP BY B.WRITER_ID
ORDER BY TOTAL_SALES

์ด๊ฑธ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.

 

์™œ๋ƒํ•˜๋ฉด!

 

SQL์—์„œ๋Š” WHERE์ ˆ์—์„œ ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

WHERE์ ˆ์€ ๊ฐ ํ–‰์— ๋Œ€ํ•ด ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜์ง€๋งŒ SUM๊ณผ ๊ฐ™์€ ์ง‘๊ณ„ ํ•จ์ˆ˜๋“ค์€ ์—ฌ๋Ÿฌ ํ–‰์— ๊ฑธ์ณ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋‘˜์„ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ, SUM(B.PRICE) >= 700000  ๋Š” WHERE์ ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ 

HAVING์ ˆ์„ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

๐Ÿ“ ์ •๋‹ต ์ฝ”๋“œ

SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE) AS TOTAL_SALES
FROM USED_GOODS_USER AS U
JOIN USED_GOODS_BOARD AS B
ON U.USER_ID = B.WRITER_ID
WHERE B.STATUS = 'DONE'
GROUP BY B.WRITER_ID
HAVING SUM(B.PRICE) >= 700000
ORDER BY TOTAL_SALES