๐ธ [solvesql] 12์ ์ฐ์ ๊ณ ๊ฐ ์ฐพ๊ธฐ (MySQL)
solvesql '12์ ์ฐ์ ๊ณ ๊ฐ ์ฐพ๊ธฐ' MySQL ํ์ด
๐ธ [solvesql] 12์ ์ฐ์ ๊ณ ๊ฐ ์ฐพ๊ธฐ (MySQL)
๐ ๋ฌธ์ ์์ฝ
2020๋ 12์ ๋์ ๋ฐ์ํ ์ฃผ๋ฌธ์ ์ด๋งค์ถ์ด 1000๋ฌ๋ฌ ์ด์์ธ ๊ณ ๊ฐ์ ID๋ฅผ ์กฐํํ๋ ๋ฌธ์ ์ด๋ค.
- ์กฐ๊ฑด
- ์กฐํ ๋์์ 2020๋ 12์ ์ฃผ๋ฌธ ๋ฐ์ดํฐ์ด๋ค.
- ๊ณ ๊ฐ๋ณ ์ฃผ๋ฌธ ๊ธ์ก์ ํฉ์ฐํ์ฌ ์ด๋งค์ถ์ ๊ณ์ฐํ๋ค.
- ์ด๋งค์ถ์ด
1000$์ด์์ธ ๊ณ ๊ฐ๋ง ์กฐํํ๋ค. - ๊ฒฐ๊ณผ์๋ ๊ณ ๊ฐ ID ์ปฌ๋ผ๋ง ์ถ๋ ฅํ๋ค.
โ ํ์ด
SELECT๊ณ ๊ฐ idFROMrecordsWHERE์ฃผ๋ฌธ ๋ ์ง๊ฐ 12์GROUP BY๊ณ ๊ฐ id-
HAVING์ฃผ๋ฌธ ๋งค์ถ์ก์ ์ด ํฉ์ด 1000 ์ด์;๐ฝ
SELECT๊ณ ๊ฐ idFROMrecordsWHEREMONTH(์ฃผ๋ฌธ ๋ ์ง) = 12GROUP BY๊ณ ๊ฐ id-
HAVINGSUM(์ฃผ๋ฌธ ๋งค์ถ์ก) >= 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 ํ์ด
This post is licensed under
CC BY 4.0
by the author.