๐ฉ๐ปโ๐ป ํจ์คํธ์บ ํผ์ค ๊ตญ๋น์ง์๊ณผ์ 'SQL๋ก ์์ํ๋
๋ฐ์ดํฐ ๋ถ์ ์ฒซ๊ฑธ์' ๊ฐ์ ๋ด์ฉ ์ ๋ฆฌ๋ฅผ ๋ชฉ์ ์ผ๋ก ๊ฐ์ธ ๊ณต๋ถ์ฐจ ์์ฑํ ๊ธ์
๋๋ค.
โ๏ธ ์๊ฐ ์ค์ธ ๊ต์ก๊ณผ์ : https://fastcampus.co.kr/b2g_kdc_sql
1. ๋ฐ์ดํฐ ๊ทธ๋ฃนํํ๊ธฐ
GROUP BY
- ์ปฌ๋ผ์์ ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ ๋ก์ฐ๋ฅผ ๊ทธ๋ฃนํ
- GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
- ๊ทธ๋ฃน ๋ณ ๋ฐ์ดํฐ ์ง๊ณํ ๋ ์ฌ์ฉ, ์์
์ ํผ๋ฒ ๊ธฐ๋ฅ๊ณผ ์ ์ฌํ๋ค.
- GROUP BY๊ฐ ์ฐ์ธ SELECT ์ ์๋ GROUP BY ๋์ ์ปฌ๋ผ๊ณผ ๊ทธ๋ฃน ํจ์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- ์ฌ๋ฌ ์ปฌ๋ผ์ผ๋ก ๊ทธ๋ฃนํ ๊ฐ๋ฅ, ํค์๋ ๋ค์ [์ปฌ๋ผ ์ด๋ฆ] ๋ณต์ ๊ฐ ์
๋ ฅํ๋ฉด ๋จ
- ์ปฌ๋ผ ๋ฒํธ๋ก๋ ๊ทธ๋ฃนํ ๊ฐ๋ฅ (๋จ, ์ปฌ๋ผ ๋ฒํธ๋ SELECT์ ์ ์ปฌ๋ผ ์ด๋ฆ์ ์์๋ฅผ ์๋ฏธ)
SELECT [GROUP BY ๋์ ์ปฌ๋ผ ์ด๋ฆ], ..., [๊ทธ๋ฃน ํจ์]
FROM [ํ
์ด๋ธ ์ด๋ฆ]
WHERE ์กฐ๊ฑด์
GROUP BY [์ปฌ๋ผ ์ด๋ฆ];
ย
2. ๊ทธ๋ฃน์ ์กฐ๊ฑด ์ฃผ๊ธฐ
HAVING
- ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ์กฐ๊ฑด์ ์ง์ ํด์ฃผ๋ ํค์๋
- HAVIG ์กฐ๊ฑด์
- ์กฐ๊ฑด์์ด ์ฐธ์ด ๋๋ ๊ทธ๋ฃน๋ง ์ ํ
- HAVIG ์ ์ ์กฐ๊ฑด์์์๋ ๊ทธ๋ฃน ํจ์๋ฅผ ํ์ฉํ๋ค.
SELECT [์ปฌ๋ผ ์ด๋ฆ], ..., [๊ทธ๋ฃน ํจ์]
FROM [ํ
์ด๋ธ ์ด๋ฆ]
WHERE ์กฐ๊ฑด์
GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
HAVIG ์กฐ๊ฑด์;
ย
3. ๋ค์ํ ๊ทธ๋ฃน ํจ์
COUNT
- ๊ทธ๋ฃน์ ๊ฐ ์๋ฅผ ์ธ๋ ํจ์
- COUNT([์ปฌ๋ผ ์ด๋ฆ])
- COUNT(1) : ํ๋์ ๊ฐ์ 1๋ก ์นํ
- SELECT, HAVING ์ ์์ ์ฌ์ฉ
- ์ง๊ณํ ์ปฌ๋ผ ์ด๋ฆ์ ๊ธฐ์ค์ด ๋๋ ์ปฌ๋ผ ์ด๋ฆ๊ณผ ๊ฐ์๋ ๋๊ณ , ๋ฌ๋ผ๋ ๋จ
- ๊ธฐ์ค์ด ๋๋ ์ปฌ๋ผ ์ด๋ฆ : GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
- GROUP BY๊ฐ ์๋ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ ๊ฐ๋ฅ, ์ ์ฒด ๋ก์ฐ์ ํจ์๊ฐ ์ ์ฉ๋จ
SELECT [์ปฌ๋ผ ์ด๋ฆ], ..., COUNT([์ปฌ๋ผ ์ด๋ฆ])
FROM [ํ
์ด๋ธ ์ด๋ฆ]
GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
HAVIG ์กฐ๊ฑด์;
SUM
- ๊ทธ๋ฃน์ ํฉ์ ๊ณ์ฐํ๋ ํจ์
- SUM([์ปฌ๋ผ ์ด๋ฆ])
- SELECT, HAVING ์ ์์ ์ฌ์ฉ
- ์ง๊ณํ ์ปฌ๋ผ ์ด๋ฆ์ ๊ธฐ์ค์ด ๋๋ ์ปฌ๋ผ ์ด๋ฆ๊ณผ ๊ฐ์๋ ๋๊ณ , ๋ฌ๋ผ๋ ๋จ
- GROUP BY๊ฐ ์๋ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ ๊ฐ๋ฅ, ์ ์ฒด ๋ก์ฐ์ ํจ์๊ฐ ์ ์ฉ๋จ
SELECT [์ปฌ๋ผ ์ด๋ฆ], ..., SUM([์ปฌ๋ผ ์ด๋ฆ])
FROM [ํ
์ด๋ธ ์ด๋ฆ]
GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
HAVIG ์กฐ๊ฑด์;
AVG
- ๊ทธ๋ฃน์ ํ๊ท ์ ๊ณ์ฐํ๋ ํจ์
- AVG([์ปฌ๋ผ ์ด๋ฆ])
- SELECT, HAVING ์ ์์ ์ฌ์ฉ
- ์ง๊ณํ ์ปฌ๋ผ ์ด๋ฆ์ ๊ธฐ์ค์ด ๋๋ ์ปฌ๋ผ ์ด๋ฆ๊ณผ ๊ฐ์๋ ๋๊ณ , ๋ฌ๋ผ๋ ๋จ
- GROUP BY๊ฐ ์๋ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ ๊ฐ๋ฅ, ์ ์ฒด ๋ก์ฐ์ ํจ์๊ฐ ์ ์ฉ๋จ
SELECT [์ปฌ๋ผ ์ด๋ฆ], ..., AVG([์ปฌ๋ผ ์ด๋ฆ])
FROM [ํ
์ด๋ธ ์ด๋ฆ]
GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
HAVIG ์กฐ๊ฑด์;
MIN
- ๊ทธ๋ฃน์ ์ต์๊ฐ์ ๋ฐํํ๋ ํจ์
- MIN([์ปฌ๋ผ ์ด๋ฆ])
SELECT [์ปฌ๋ผ ์ด๋ฆ], ..., MIN([์ปฌ๋ผ ์ด๋ฆ])
FROM [ํ
์ด๋ธ ์ด๋ฆ]
GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
HAVIG ์กฐ๊ฑด์;
MAX
- ๊ทธ๋ฃน์ ์ต๋๊ฐ์ ๋ฐํํ๋ ํจ์
- MAX([์ปฌ๋ผ ์ด๋ฆ])
SELECT [์ปฌ๋ผ ์ด๋ฆ], ..., MAX([์ปฌ๋ผ ์ด๋ฆ])
FROM [ํ
์ด๋ธ ์ด๋ฆ]
GROUP BY [์ปฌ๋ผ ์ด๋ฆ]
HAVIG MAX(์ปฌ๋ผ ์ด๋ฆ);
ย
4. ์ฟผ๋ฆฌ ์คํ ์์
ํค์๋ | ๋ฌธ๋ฒ | ์์ฑ ์์ | ์คํ ์์ |
---|
SELECT | SELECT [์ปฌ๋ผ ์ด๋ฆ] | 1 | 5 |
FROM | FROM [ํ
์ด๋ธ ์ด๋ฆ] | 2 | 1 |
WHERE | WHERE ์กฐ๊ฑด์ | 3 | 2 |
GROUP BY | GROUP BY [์ปฌ๋ผ ์ด๋ฆ] | 4 | 3 |
HAVING | HAVING ์กฐ๊ฑด์ | 5 | 4 |
ORDER BY | ORDER BY [์ปฌ๋ผ ์ด๋ฆ] | 6 | 6 |
ํญ์ ๋ฐ์ ํ๋๋ชจ์ต ๋ฉ์ง๋ค์~