๐Ÿงฑ SQL

231223 SAT GROUP BY, HAVING (vs WHERE)

ํ–‰ํŒฝ 2023. 12. 23. 22:54
SELECT user_id, product_id, sales_date
FROM online_sale
WHERE sales_date >2022
GROUP BY user_id, product_id
HAVING COUNT(product_id>=2)
ORDER BY 1 asc , 2 descโ€‹

 

 

์œ„ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ํ•ด์„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  • 2ํ–‰ : online_sale ํ…Œ์ด๋ธ”์—์„œ
  • 3ํ–‰ : sales_date ๊ฐ€ 2022๋…„ ์ด์ƒ์ธ ๋ฐ์ดํ„ฐ๋ฅผ
  • 4ํ–‰ : user_id ์™€ product_id ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ 
  • 5ํ–‰ : ๊ทธ ๊ฒฐ๊ณผ์—์„œ product_id ๊ฐ€ 2 ์ด์ƒ์ธ ๊ฒƒ๋งŒ ๋ฝ‘์•„
  • 6ํ–‰ : user_id ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ, ๋งŒ์•ฝ user_id๊ฐ€ ๊ฐ™๋‹ค๋ฉด product_ id ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.
  • 1ํ–‰ : user_id, product_id, sales_date๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ด์ „์—๋„ where์™€ having์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ TIL์— ์ผ๋Š”๋ฐ, ๊ฐ•์˜๋กœ ๋“ค์€ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋‹ค ๋ณด๋‹ˆ ๊ธฐ์–ต์— ์ž˜ ์•ˆ ๋‚จ์•„์„œ ์ฝ”ํ…Œํ•  ๋•Œ '์ด ๋ฌธ์ œ๋Š” having์œผ๋กœ group by์— ์กฐ๊ฑด์„ ๊ฑฐ๋Š” ๋ฌธ์ œ๊ตฌ๋‚˜'๋ผ๋Š” ํŒŒ์•… ์ž์ฒด๋ฅผ ๋ชปํ•˜๋”๋ผ๊ณ ..

 

๊ฐ„๋‹จํžˆ ๋งํ•ด where๋Š” raw data์— ๊ฑฐ๋Š” ์กฐ๊ฑด์ด๊ณ , having์€ grpup by๋กœ ๊ทธ๋ฃนํ™”ํ•œ ๊ฒฐ๊ณผ์— ๊ฑฐ๋Š” ์กฐ๊ฑด์ด๋ผ๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

์ฐธ๊ณ  ์„œ์ 

 

๋Ÿฌ๋‹ SQL | ์•จ๋Ÿฐ ๋ณผ๋ฆฌ์™ธ - ๊ต๋ณด๋ฌธ๊ณ 

๋Ÿฌ๋‹ SQL | SQL ์–ธ์–ด๋ฅผ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋…์„œํƒœ์–ด๋‚œ ์ง€ 40๋…„์ด ๋„˜์€ SQL์˜ ์“ฐ์ž„์ƒˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์„ฑ์‹œ๋Œ€๋ฅผ ๋งž์•„ ํ™•์žฅํ•˜๊ณ  ์žˆ๋‹ค. ์ด ์ฑ…์€ ๊ฐœ๋ฐœ์ž๊ฐ€ SQL ๊ธฐ๋ณธ์„ ๋นจ๋ฆฌ ์ตํžˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

product.kyobobook.co.kr