Post

๐ŸŒธ [solvesql] 12์›” ์šฐ์ˆ˜ ๊ณ ๊ฐ ์ฐพ๊ธฐ (MySQL)

solvesql '12์›” ์šฐ์ˆ˜ ๊ณ ๊ฐ ์ฐพ๊ธฐ' MySQL ํ’€์ด

๐ŸŒธ [solvesql] 12์›” ์šฐ์ˆ˜ ๊ณ ๊ฐ ์ฐพ๊ธฐ (MySQL)


๐Ÿ‘‰ solvesql - 12์›” ์šฐ์ˆ˜ ๊ณ ๊ฐ ์ฐพ๊ธฐ


๐Ÿ“Œ ๋ฌธ์ œ ์š”์•ฝ

2020๋…„ 12์›” ๋™์•ˆ ๋ฐœ์ƒํ•œ ์ฃผ๋ฌธ์˜ ์ด๋งค์ถœ์ด 1000๋‹ฌ๋Ÿฌ ์ด์ƒ์ธ ๊ณ ๊ฐ์˜ ID๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

  • ์กฐ๊ฑด
    • ์กฐํšŒ ๋Œ€์ƒ์€ 2020๋…„ 12์›” ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ์ด๋‹ค.
    • ๊ณ ๊ฐ๋ณ„ ์ฃผ๋ฌธ ๊ธˆ์•ก์„ ํ•ฉ์‚ฐํ•˜์—ฌ ์ด๋งค์ถœ์„ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ์ด๋งค์ถœ์ด 1000$ ์ด์ƒ์ธ ๊ณ ๊ฐ๋งŒ ์กฐํšŒํ•œ๋‹ค.
    • ๊ฒฐ๊ณผ์—๋Š” ๊ณ ๊ฐ ID ์ปฌ๋Ÿผ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.


โœ… ํ’€์ด

  • SELECT ๊ณ ๊ฐ id
  • FROM records
  • WHERE ์ฃผ๋ฌธ ๋‚ ์งœ๊ฐ€ 12์›”
  • GROUP BY ๊ณ ๊ฐ id
  • HAVING ์ฃผ๋ฌธ ๋งค์ถœ์•ก์˜ ์ด ํ•ฉ์ด 1000 ์ด์ƒ;

    ๐Ÿ”ฝ

  • SELECT ๊ณ ๊ฐ id
  • FROM records
  • WHERE MONTH(์ฃผ๋ฌธ ๋‚ ์งœ) = 12
  • GROUP BY ๊ณ ๊ฐ id
  • HAVING SUM(์ฃผ๋ฌธ ๋งค์ถœ์•ก) >= 1000;


โŒจ๏ธ ์ œ์ถœ SQL

1
2
3
4
5
6
7
8
9
10
11
SELECT
  customer_id
FROM
  records
WHERE
  MONTH(order_date) = 12
GROUP BY
  customer_id
HAVING
  SUM(sales) >= 1000;


๐Ÿ’ก ํ’€์ด ํฌ์ธํŠธ

  • GROUP BY๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณ ๊ฐ๋ณ„๋กœ ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • SUM() ํ•จ์ˆ˜๋Š” ๊ทธ๋ฃน๋ณ„ ๋งค์ถœ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ง‘๊ณ„ ํ•จ์ˆ˜ ๊ฒฐ๊ณผ๋ฅผ ์กฐ๊ฑด์œผ๋กœ ํ•„ํ„ฐ๋งํ•  ๋•Œ๋Š” WHERE๊ฐ€ ์•„๋‹ˆ๋ผ HAVING์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • WHERE๋Š” ๊ทธ๋ฃนํ™”๋˜๊ธฐ ์ „ ๊ฐœ๋ณ„ ํ–‰์„ ํ•„ํ„ฐ๋งํ•˜๊ณ , HAVING์€ GROUP BY ์ดํ›„ ์ƒ์„ฑ๋œ ๊ทธ๋ฃน์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค.
  • MONTH() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ ์งœ ์ปฌ๋Ÿผ์—์„œ ์›” ์ •๋ณด๋งŒ ์ถ”์ถœํ•˜์—ฌ ํŠน์ • ์›”์˜ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์—ฐ๋„๊ฐ€ ์„ž์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ผ๋ฉด order_date >= '2020-12-01' AND order_date < '2021-01-01' ๋ฐฉ์‹์ด ๋” ์ •ํ™•


๐Ÿ“š ๋” ๋งŽ์€ solvesql ํ’€์ด

๐Ÿ‘‰ solvesql ํ’€์ด ์ „์ฒด ๋ณด๊ธฐ

This post is licensed under CC BY 4.0 by the author.