๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ“š ์‹œ๋ฆฌ์ฆˆ/- ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ

[์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY

by Wonit 2021. 2. 25.

์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

  • ์ง‘๊ณ„ ํ•จ์ˆ˜
    • AVG, MIN, MAX, COUNT
    • ์‹ค์Šต ํ•ด๋ณด๊ธฐ
    • ํ˜ผ์ž ์ƒ๊ฐํ•ด๋ณด๊ธฐ
  • GROUP BY
    • ๊ธฐ๋ณธ์ ์ธ GROUP BY ํ˜•์‹
    • GROUP BY๋ฅผ ๋” ๊นŠ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ
    • ํ˜ผ์ž ์ƒ๊ฐํ•ด๋ณด๊ธฐ
  • HAVING
    • ์™œ HAVING์ด ํ•„์š”ํ• ๊นŒ
    • HAVING์ ˆ ์‚ฌ์šฉํ•˜๊ธฐ

์ง€๋‚œ ์‹œ๊ฐ„์— ์šฐ๋ฆฌ๋Š” SELECT์˜ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ SELECT์™€ ํ•จ๊ผ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š” WHERE, ORDER BY์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค.

 

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด์ฃผ๋Š” GROUP BY์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.


GROUP BY ์ ˆ์€ SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ž์ฃผ ์ถœ์ œ๋˜๋Š” ์œ ํ˜•์ค‘ ํ•˜๋‚˜์ด๋‹ค.

์ง‘๊ณ„ ํ•จ์ˆ˜

์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ํŠน์ • ๊ฐ’๋“ค์„ ๋ง ๊ทธ๋Œ€๋กœ ์ง‘๊ณ„ ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

 

์ง‘๊ณ„์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

๊ทธ ์ค‘์— ๋Œ€ํ‘œ์ ์ธ 4๊ฐ€์ง€๋ฅผ ๋ด๋ณด์ž.

 

  • AVG : ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ์ง‘๊ณ„
  • MIN : ์ตœ์†Œ๋ฅผ ๊ตฌํ•˜๋Š” ์ง‘๊ณ„
  • MAX : ์ตœ๋Œ€๋ฅผ ๊ตฌํ•˜๋Š” ์ง‘๊ณ„
  • COUNT : ์ด ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์ง‘๊ณ„

๊ทธ๋Ÿผ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

buytb1 ์—์„œ ์ด ์–ผ๋งŒํผ ์ฃผ๋ฌธ๋˜์—ˆ๋Š”์ง€ ์ด ์ฃผ๋ฌธ๋Ÿ‰์„ ์ถœ๋ ฅํ•˜๋ผ
SELECT sum(amount)
FROM buytb1;
usertb1 ์—์„œ ์‚ฌ์šฉ์ž๋“ค์˜ ํ‰๊ท  ํ‚ค๋ฅผ ์ถœ๋ ฅํ•˜๋ผ
SELECT avg(height)
FROM usertb1;

์ด๋Ÿฐ ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋ฌธ ์˜์—ญ์ด ๋งค์šฐ ๋‹ค์–‘ํ•˜๋ฉฐ, ์ž์ฃผ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.


๊ทธ ๋ง์€ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฐ ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ž์ฃผ ์ถœ์ œ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์†Œ๋ฆฌ์ด๋‹ค.

ํ˜ผ์ž ์ƒ๊ฐํ•ด๋ณด์ž!

๋งŒ์•ฝ usertb1 ์—์„œ ํ‚ค๊ฐ€ ๊ฐ€์žฅ ํฐ ์‚ฌ์šฉ์ž์™€ ํ‚ค๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๋ผ! ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ์–ด๋–ค ์ฟผ๋ฆฌ๋ฌธ์ด ๋‚˜์˜ฌ๊นŒ?

 

๋ถ„๋ช… ์—ฌ๋Ÿฌ๋ถ„์€ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๋ชป ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ๊ฝค๋‚˜ ์–ด๋ ค์šด ๋ฌธ์ œ์—์š”! ์•„์ฃผ ์–ด๋ ต์ง€๋งŒ ์—ฌ๋Ÿฌ๋ฒˆ ๋ณด๊ณ  ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š” :)
์ง€๊ธˆ์€ ๋ชฐ๋ผ๋„ ์•„๋งˆ ํ•œ 80% ์˜ˆ์ƒํ•˜๋Š”๋ฐ, ์•„๋งˆ ์ด๋ก  ์‹œ๋ฆฌ์ฆˆ๋งŒ ๋๋‚ด๋ฉด ์ด ๋ฌธ์ œ ์Šค์Šค๋กœ ํ’€ ์ˆ˜ ์žˆ์„๊ฑธ์š”?
๋งŒ์•ฝ ๋‹ต์„ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ๋น„๋ฐ€ ๋Œ“๊ธ€๋„ ์ข‹์œผ๋‹ˆ ๋‹ฌ์•„์ฃผ์„ธ์š” ใ…Žใ…Ž

GROUP BY

SELECT ํ•„๋“œ๋ช…
FROM ํ…Œ์ด๋ธ”๋ช…
GROUP BY ํ•„๋“œ๋ช… ํ˜น์€ ํ‘œํ˜„์‹

์šฐ์„  GROUP BY์— ๋Œ€ํ•ด์„œ ์•Œ๊ธฐ ์ „์— ์–ด๋””์„œ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์˜ˆ์ œ๋ฅผ ๋จผ์ € ์ ‘ํ•˜๊ณ  ์ดํ•ดํ•ด๋ณด์ž.

 

  • 1 buytb1 ์—์„œ ๋ฌผํ’ˆ ๋ณ„๋กœ ์ด ๋ช‡ ๊ฐœ๊ฐ€ ์ฃผ๋ฌธ๋˜์—ˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋ผ
  • 2 usertb1 ์—์„œ ์ง€์—ญ ๋ณ„๋กœ ์‚ฌ์šฉ์ž๋“ค์˜ ํ‚ค ํ‰๊ท ์ด ๋ช‡์ธ์ง€ ์ถœ๋ ฅํ•˜๋ผ
  • 3 usertb1 ์—์„œ ๋ฒˆํ˜ธ ์•ž ์ž๋ฆฌ(010์ธ์ง€ 011์ธ์ง€) ๋ณ„๋กœ ๋ช‡ ๋ช…์ด ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋ผ.
  • 4 buytb1 ์—์„œ ๋ฌผํ’ˆ ๋ณ„๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์ฃผ๋ฌธ๋œ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜๋ผ

GROUP BY๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์œ„์˜ 4๊ฐœ ์ฟผ๋ฆฌ๋ฅผ ํ˜ผ์ž์„œ ํ•œ ๋ฒˆ ์ˆ˜ํ–‰ํ•ด๋ณด์ž.
์‰ฝ์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์ด ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค๋ฉด ์™œ ์šฐ๋ฆฌ๋Š” GROUP BY ํ•จ์ˆ˜๋ฅผ ์จ์•ผํ•˜๋Š”์ง€ ์•„์ฃผ ์ง๊ด€์ ์ด๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

์œ„์— ๋‚˜์˜จ ๋ฌธ์ œ๋“ค์€ ๋ชจ๋‘ GROUP BY ์ ˆ์ด ์‚ฌ์šฉ๋˜์–ด์•ผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋Ÿผ ๊ณตํ†ต์ ์„ ํ•œ ๋ฒˆ ์ฐพ์•„๋ณด์ž.

 

  • ์ด ๋ช‡๊ฐœ, ํ‰๊ท ์ด ๋ช‡ ๋ช…, ๊ฐ€์žฅ ํฐ, ๋ช‡ ๋ช…์ด ์žˆ๋Š”์ง€์™€ ๊ฐ™์€ ์ง‘๊ณ„ ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.
  • xx ๋ณ„๋กœ๋ผ๋Š” ๋ง์ด ์“ฐ์˜€๋‹ค.

์ด ๋‘˜์„ ์ข…ํ•ฉํ•ด์„œ ๋ณธ๋‹ค๋ฉด, GROUP BY๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ xx ๋ณ„๋กœ ๊ทธ๋“ค ๋งŒ์˜ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋Ÿผ ๊ฐ๊ฐ์˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ์ฟผ๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

/* 1๋ฒˆ buytb1 ์—์„œ **๋ฌผํ’ˆ ๋ณ„๋กœ** ์ด ๋ช‡ ๊ฐœ๊ฐ€ ์ฃผ๋ฌธ๋˜์—ˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋ผ */
SELECT prodname, count(amount)
FROM buytb1
GROUP BY prodname;

/* 2๋ฒˆ usertb1 ์—์„œ **์ง€์—ญ ๋ณ„๋กœ** ์‚ฌ์šฉ์ž๋“ค์˜ ํ‚ค ํ‰๊ท ์ด ๋ช‡์ธ์ง€ ์ถœ๋ ฅํ•˜๋ผ */
SELECT addr, avg(height)
FROM usertb1
GROUP BY addr;

/* 3๋ฒˆ usertb1 ์—์„œ **๋ฒˆํ˜ธ ์•ž ์ž๋ฆฌ(010์ธ์ง€ 011์ธ์ง€) ๋ณ„๋กœ** ๋ช‡ ๋ช…์ด ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋ผ.
 */
SELECT mobile1, count(*)
FROM usertb1
GROUP BY mobile1;

/* 4๋ฒˆ buytb1 ์—์„œ **๋ฌผํ’ˆ ๋ณ„๋กœ** ๊ฐ€์žฅ ๋งŽ์ด ์ฃผ๋ฌธ๋œ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜๋ผ */
SELECT prodname, max(amount)
FROM buytb1
GROUP BY prodname;

GROUP BY ํ•จ์ˆ˜๋ฅผ ์ข€ ๋” ๊นŠ๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด์ž.

buytb1 ์—์„œ ์‚ฌ์šฉ์ž๋“ค์˜ ์ด ๊ตฌ๋งค ๊ธˆ์•ก์„ ์ถœ๋ ฅํ•˜๋ผ.

์šฐ์„  ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž ๋ณ„๋กœ ๊ตฌ๋งค ๊ธˆ์•ก์„ ๋”ฐ๋กœ ๋‚˜๋ˆ ์•ผ ํ•˜๋‹ˆ ์‚ฌ์šฉ์ž๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์ค˜์•ผ ํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ์ด ๊ตฌ๋งค ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•ด๋ณด์ž.

SELECT userid, amount * price
FROM buytb1;

์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๊ฐ๊ฐ ์‚ฌ์šฉ์ž์˜ ๋ฌผํ’ˆ๋ณ„ ๊ตฌ๋งค ๊ธˆ์•ก์ด ๋‚˜์˜จ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ด ๋ฌผํ’ˆ๋ณ„ ๊ตฌ๋งค ๊ธˆ์•ก์„ ๋ชจ๋‘ ํ•ฉ์‚ฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ sum์„ ์ด์šฉํ•ด ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

SELECT userid, sum(amount * price)
FROM buytb1;

์˜ค ๊ทผ๋ฐ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.


์™œ๋ƒ? ์ง‘๊ณ„ ํ•จ์ˆ˜๋กœ ์ง‘๊ณ„๋ฅผ ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ค ๊ทธ๋ฃน์— ์†ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—.


userid๋Š” ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ๊ทธ ์ค‘ ์–ด๋””์— ์†ํ•ด์•ผ ํ• ์ง€ ๋ฏ€๋กœ๋ฏ€๋กœ userid๋กœ GROUP ์ง€์–ด์ฃผ๋ฉด ๋œ๋‹ค.

SELECT userid, sum(amount * price)
FROM buytb1
GROUP BY userid;

๊ทธ๋Ÿผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์•„์ฃผ ์•„๋ฆ„๋‹ต๊ฒŒ ์ž˜ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

 

ํ˜ผ์ž ์ƒ๊ฐํ•ด๋ณด์ž!

๋งŒ์•ฝ buytb1์—์„œ ์‚ฌ์šฉ์ž๋“ค์ด ํ‰๊ท ์ ์œผ๋กœ ๋ช‡ ๊ฐœ์˜ ๋ฌผ๊ฑด์„ ์ƒ€๋Š”์ง€ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

์ด ๋ฌธ์ œ ๋˜ํ•œ ๋ชป ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๋ง ํ–ˆ๋“ฏ ์—ฌ๋Ÿฌ๋ฒˆ ๋ณด๊ณ  ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š” :)
๋งŒ์•ฝ ๋‹ต์„ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ๋น„๋ฐ€ ๋Œ“๊ธ€๋„ ์ข‹์œผ๋‹ˆ ๋‹ฌ์•„์ฃผ์„ธ์š” ใ…Žใ…Ž

HAVING

๊ทธ๋Ÿผ ๋‚ด์นœ๊น€์— ์ด๊ฒƒ๋„ ํ’€์–ด๋ณด์ž.

buytb1 ์—์„œ ์‚ฌ์šฉ์ž๋“ค์˜ ์ด ๊ตฌ๋งค ๊ธˆ์•ก์ด 1500 ์ด์ƒ์ธ ์‚ฌ์šฉ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.

์œ„์—์„œ ์šฐ๋ฆฌ๋Š” ์ด ๊ตฌ๋งค ๊ธˆ์•ก์„ ๊ตฌํ•œ์ ์ด ์žˆ๋‹ค.

SELECT userid, sum(amount * price)
FROM buytb1
GROUP BY userid;

๊ทธ๋Ÿผ ์ด์ œ 1500 ์ด์ƒ์ธ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์•„์ฃผ ์‰ฝ๋‹ค.


WHERE ์„ ์‚ฌ์šฉํ•˜์ž.

SELECT userid, sum(amount * price)
FROM buytb1
GROUP BY userid
WHERE sum(amount * price) > 1500;

์—ฅ? ์•ˆ๋œ๋‹ค.


์šฐ๋ฆฌ์˜ ๋…ผ๋ฆฌ๋ผ๋ฉด ๋ผ์•ผ ํ•˜๋Š”๋ฐ ์•ˆ๋œ๋‹ค..


์ด์œ ๋Š” ์šฐ๋ฆฌ์˜ ๋…ผ๋ฆฌ๋ผ์„œ ๊ทธ๋ ‡๋‹ค.


์šฐ๋ฆฌ์˜ ๋…ผ๋ฆฌ๋ฅผ ์ข€ ํ™•์žฅ ์‹œํ‚ค๋ฉด ์ด๊ฑด ๋‹น์—ฐํžˆ ์•ˆ๋˜๋Š” ๊ฒƒ์ด ๋œ๋‹ค.

 

๋…ผ๋ฆฌ๋ฅผ ํ™•์žฅ์‹œ์ผœ๋ณด์ž.

์ง‘๊ณ„ ํ•จ์ˆ˜์—์„œ ์กฐ๊ฑด์„ ์ค„ ๋•Œ

์ง‘๊ณ„ ํ•จ์ˆ˜์—์„œ ์กฐ๊ฑด์„ ์ค„ ๋•Œ๋Š” WHERE ๋Œ€์‹  HAVING์„ ์‚ฌ์šฉํ•œ๋‹ค.


์ฆ‰, HAVING ์ ˆ์€ ์ง‘๊ณ„ ํ•จ์ˆ˜์—์„œ ์กฐ๊ฑด์„ ์ค„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.


๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ์œ„์—์„œ ์กฐ๊ฑด์„ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ’์œผ๋กœ ์คฌ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด์ œ HAVING์ด ์™œ ํ•„์š”ํ•œ์ง€ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

HAVING์ ˆ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

SELECT ํ•„๋“œ๋ช…
FROM ํ…Œ์ด๋ธ”๋ช…
GROUP BY ํ•„๋“œ๋ช… ํ˜น์€ ํ‘œํ˜„์‹
HAVING where์กฐ๊ฑด

์—ฌ๊ธฐ์„œ HAVING์€ where ์กฐ๊ฑด์‹๊ณผ ๋™์ผํ•œ ํ˜•ํƒœ์˜ ์กฐ๊ฑด์‹์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ์ค‘์š”ํ•œ ๊ฒƒ์ด HAVING์€ ๋ฌด์กฐ๊ฑด GROUP BY ๋’ค์— ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค.

 

์ด์ œ ์šฐ๋ฆฌ๋Š” ์•ž์„œ ๋ดค๋˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

SELECT userid, sum(amount * price)
FROM buytb1
GROUP BY userid
HAVING sum(amount * price) > 1500;

์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€