[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 43. ์กฐ๊ฑด์— ๋งž๋Š” ์‚ฌ์šฉ์ž์™€ ์ด ๊ฑฐ๋ž˜๊ธˆ์•ก ์กฐํšŒํ•˜๊ธฐ

2025. 4. 10. 09:31ยท๋‚ด์ผ๋ฐฐ์›€์บ ํ”„/SQL ์ฝ”๋“œ์นดํƒ€

โ‡๏ธ ๋ฌธ์ œ ์„ค๋ช…

USED_GOODS_BOARD์™€ USED_GOODS_USER ํ…Œ์ด๋ธ”์—์„œ ์™„๋ฃŒ๋œ ์ค‘๊ณ  ๊ฑฐ๋ž˜์˜ ์ด๊ธˆ์•ก์ด 70๋งŒ ์› ์ด์ƒ์ธ ์‚ฌ๋žŒ์˜ ํšŒ์› ID, ๋‹‰๋„ค์ž„, ์ด๊ฑฐ๋ž˜๊ธˆ์•ก์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ๊ฒฐ๊ณผ๋Š” ์ด๊ฑฐ๋ž˜๊ธˆ์•ก์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.

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

 

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

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

programmers.co.kr

 

โ‡๏ธ ๋ฌธ์ œ ํ•ด์„

1. USED_GOODS_BOARD์™€ USED_GOODS_USER ํ…Œ์ด๋ธ” JOIN
2. ์™„๋ฃŒ๋œ ์ค‘๊ณ  ๊ฑฐ๋ž˜๋งŒ ํ•„ํ„ฐ๋ง
3. ์ด๊ฑฐ๋ž˜๊ธˆ์•ก 70๋งŒ์› ์ด์ƒ์ธ ํšŒ์› ์กฐํšŒ
4. ๊ฒฐ๊ณผ๋Š” ์ด๊ฑฐ๋ž˜๊ธˆ์•ก์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

 

โ‡๏ธ ์ž‘์„ฑ ์ฝ”๋“œ

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

 

โ‡๏ธ ์ฝ”๋“œ ํ’€์ด

1. USED_GOODS_BOARD์™€ USED_GOODS_USER ํ…Œ์ด๋ธ” JOIN

FROM USED_GOODS_BOARD B LEFT JOIN USED_GOODS_USER U ON B.WRITER_ID = U.USER_ID

์ž‘์„ฑ์žID์™€ ํšŒ์›ID๋กœ JOINํ•œ๋‹ค. ์ค‘๊ณ  ๊ฑฐ๋ž˜ ๊ฒŒ์‹œํŒ ์ •๋ณด์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ•˜๋ฏ€๋กœ LEFT JOIN์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.

 

2. ์™„๋ฃŒ๋œ ์ค‘๊ณ  ๊ฑฐ๋ž˜๋งŒ ํ•„ํ„ฐ๋ง

WHERE B.STATUS = 'DONE'

 

3. ์ด๊ฑฐ๋ž˜๊ธˆ์•ก 70๋งŒ์› ์ด์ƒ์ธ ํšŒ์› ์กฐํšŒ

GROUP BY B.WRITER_ID
HAVING SUM(B.PRICE)>=700000

์ž‘์„ฑ์ž ID๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋ฅผ ํ•œ๋‹ค.

๊ทธ๋ฃนํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ์— 70๋งŒ์› ์ด์ƒ์ด๋ผ๋Š” ์กฐ๊ฑด์„ ์ฃผ์–ด์•ผ ํ•จ์œผ๋กœ HAVING์ ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

4. ๊ฒฐ๊ณผ๋Š” ์ด๊ฑฐ๋ž˜๊ธˆ์•ก์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

ORDER BY TOTAL_PRICE

 

โ‡๏ธ ์‹คํ–‰ ๊ฒฐ๊ณผ


โ‡๏ธ ๋ฒˆ์™ธ

โœ”๏ธ SQL ๋ฌธ๋ฒ• ์ž‘์„ฑ ์ˆœ์„œ

SELECT

FROM

WHERE

GROUP BY

HAVING

ORDER BY

 

โœ”๏ธ SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ์ˆœ์„œ

์‹คํ–‰ ์ˆœ์„œ ๋‚ด์šฉ
FROM ์กฐํšŒ ํ…Œ์ด๋ธ”์„ ๊ฒฐ์ •ํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ JOIN์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
WHERE ์กฐ๊ฑด์— ๋งž๋Š” ํ–‰(row)๋งŒ ํ•„ํ„ฐ๋งํ•œ๋‹ค. 
GROUP BY ์ปฌ๋Ÿผ์„ ํŠน์ • ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™” ํ•œ๋‹ค.
HAVING WHERE๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, GROUP BY๋œ ์ดํ›„์˜ ๋ฐ์ดํ„ฐ์— ์กฐ๊ฑด์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.
SELECT ๋ชจ๋“  ์กฐ๊ฑด์„ ์ฒ˜๋ฆฌํ•œ ํ›„, ๋‚จ์€ ๋ฐ์ดํ„ฐ ์ค‘ ์–ด๋–ค ์—ด(column)์„ ์ถœ๋ ฅํ• ์ง€ ์„ ํƒํ•œ๋‹ค.
ORDER BY ๋ชจ๋“  ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•œ๋‹ค.

๋ฌธ๋ฒ• ์ž‘์„ฑ ์ˆœ์„œ์™€ ์‹ค์ œ ์‹คํ–‰ ์ˆœ์„œ๋Š” ๋‹ค๋ฅด๋‹ค! (SELECT์ ˆ์ด ORDER BY ์ „์— ์‹คํ–‰๋œ๋‹ค)

GROUP ์ ˆ์— ์กฐ๊ฑด์„ ์ค„ ๋•Œ๋Š” HAVING์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.

WHERE์€ ๊ทธ๋ฃนํ™” ์ „, HAVING์€ ๊ทธ๋ฃนํ™” ํ›„!

'๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ > SQL ์ฝ”๋“œ์นดํƒ€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 50. 5์›” ์‹ํ’ˆ๋“ค์˜ ์ด๋งค์ถœ ์กฐํšŒํ•˜๊ธฐ  (3) 2025.04.17
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 44. ๊ฐ€๊ฒฉ๋Œ€ ๋ณ„ ์ƒํ’ˆ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ  (1) 2025.04.11
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 42. ํ‰๊ท  ์ผ์ผ ๋Œ€์—ฌ ์š”๊ธˆ ๊ตฌํ•˜๊ธฐ  (0) 2025.04.09
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 41. ์กฐ๊ฑด์— ๋งž๋Š” ๋„์„œ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅํ•˜๊ธฐ  (2) 2025.04.08
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 40. ๋ฃจ์‹œ์™€ ์—˜๋ผ ์ฐพ๊ธฐ  (3) 2025.04.07
'๋‚ด์ผ๋ฐฐ์›€์บ ํ”„/SQL ์ฝ”๋“œ์นดํƒ€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 50. 5์›” ์‹ํ’ˆ๋“ค์˜ ์ด๋งค์ถœ ์กฐํšŒํ•˜๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 44. ๊ฐ€๊ฒฉ๋Œ€ ๋ณ„ ์ƒํ’ˆ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 42. ํ‰๊ท  ์ผ์ผ ๋Œ€์—ฌ ์š”๊ธˆ ๊ตฌํ•˜๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 41. ์กฐ๊ฑด์— ๋งž๋Š” ๋„์„œ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅํ•˜๊ธฐ
aggeeeee
aggeeeee
ใ€€ φ(๏ผŽ๏ผŽ;)ใ€€๐Ÿ”œใ€€\_ใธ(โ–ญ-โ–ญ)โœจ
  • aggeeeee
    ๐Ÿฅ” ๋‹˜์˜ ๋ธ”๋กœ๊ทธ
    aggeeeee
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155)
      • Today I Learned (25)
      • ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ (115)
        • ๋ณธ์บ ํ”„ ๊ณผ์ œ (17)
        • ์‚ฌ์ „์บ ํ”„ ๊ณผ์ œ (23)
        • SQL ์ฝ”๋“œ์นดํƒ€ (44)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€ (31)
      • ๐Ÿ’ป๐Ÿš€ (15)
        • Java (7)
        • Git & GitHub (1)
        • CS (4)
        • Spring & SpringBoot (3)
  • ๋งํฌ

  • ์ตœ๊ทผ ๊ธ€

  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
aggeeeee
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/MYSQL] 43. ์กฐ๊ฑด์— ๋งž๋Š” ์‚ฌ์šฉ์ž์™€ ์ด ๊ฑฐ๋ž˜๊ธˆ์•ก ์กฐํšŒํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”