[๋ณต์ํ ํจ์]
์ ์ฒด ๋์ ์์
์ฌ๋ฌ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์
๋ ฅ ๋ฐ์์ ๊ฒฐ๊ณผ๊ฐ์ 1๊ฐ ๋ง๋ค์ด์ฃผ๋ ํจ์ (๊ทธ๋ฃนํจ์)
- COUNT() : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ์ด ๊ฑด์
- SUM : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ํฉ๊ณ ๊ฐ ๊ตฌํด์ ์ถ๋ ฅ
- AVG : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ํ๊ท ๊ฐ ๊ตฌํด์ ์ถ๋ ฅ
- MAX : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ ์ค ๊ฐ์ฅ ํฐ ๊ฐ ๊ตฌํด์ ์ถ๋ ฅ
- MIN : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ ์ค ๊ฐ์ฅ ์์ ๊ฐ ์ถ๋ ฅ
- STDDEV : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ ๊ฐ๋ค์ ํ์ค ํธ์ฐจ ๊ฐ ์ถ๋ ฅ
- VARIANCE : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ ๊ฐ๋ค์ ๋ถ์ฐ ๊ฐ ์ถ๋ ฅ
- ROLLUP : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ์๊ณ๊ฐ์ ์๋์ผ๋ก ๊ณ์ฐํด์ ์ถ๋ ฅ
- CUBE : ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ์๊ณ ๋ฐ ์ ์ฒด ์ด๊ณ๋ฅผ ์๋ ๊ณ์ฐ ํ ์ถ๋ ฅ
- GROUPINGSET : ํ ๋ฒ์ ์ฟผ๋ฆฌ๋ก ์ฌ๋ฌ ๊ฐ์ ํจ์๋ค์ ๊ทธ๋ฃน์ผ๋ก ์ํ ๊ฐ๋ฅ
[GROUP BY ์ ]
ํน์ ์กฐ๊ฑด์ผ๋ก ์ธ๋ถ์ ์ธ ๊ทธ๋ฃนํ ํ๊ธฐ
๊ทธ๋ฃน๋ฐ์ด ์ ๋ค์ ์ค๋ ์ปฌ๋ผ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ชจ์ผ๊ณ ์ดํ SELECT ์ ์ ์ ํ ์๋ ๊ทธ๋ฃน ํจ์๋ฅผ ์ ์ฉํ๋ค.
1) SELECT ์ ์ ์ฌ์ฉ๋ ๊ทธ๋ฃน ํจ์์ด์ธ์ ์ปฌ๋ผ, ํํ์์ ๋ฐ๋์ GROUP BY ์ ์ ์ฌ์ฉ๋์ด์ผํ๋ค.
2) GROUP BY ์ ์๋ ๋ฐ๋์ ์ปฌ๋ผ๋ช ์ด ์ฌ์ฉ๋์ด์ผํ๋ค.(Alias ์ฌ์ฉ์๋จ)
[HAVING ์ ]
๊ทธ๋ฃนํํ ์กฐ๊ฑด์ผ๋ก ๊ฒ์ํ๊ธฐ
WHERE ์ ์ ๊ทธ๋ฃนํจ์๋ฅผ ๋น๊ต์กฐ๊ฑด์ผ๋ก ์ฌ์ฉ ๋ถ๊ฐ
๊ทธ๋ฃน์กฐ๊ฑด์ HAVING ์ ์ ์ฌ์ฉํ๋ค.
[๊ทธ๋ฃน ํจ์ ์ข ๋ฅ]
- LISTAGG() WITHIN GROUP () : ์ฝ๊ฒ ๊ทธ๋ฃนํ ํด์ฃผ๋ ํจ์
- PIVOT () : row ๋จ์๋ฅผ column ๋จ์๋ก ๋ณ๊ฒฝ
- UNPIVOT() : colummn ๋จ์๋ฅผ row ๋จ์๋ก ๋ณ๊ฒฝ
- RANK () : ์์ ์ถ๋ ฅ ํจ์
- ํน์ ๋ฐ์ดํฐ ์์ : RANK() WITHIN GROUP( ORDER BY )
- ์ ์ฒด ์์ ๋ณด๊ธฐ : RANK() OVER(ORDER BY)
- DENSE_RANK () : ๋์ผํ ์์๋ฅผ ํ๋์ ๊ฑด์๋ก ์ทจ๊ธํ์ฌ ์ฐ์๋ ์์ ๋ณด์ฌ์ฃผ๊ธฐ
- ROW_NUMBER(): ๋์ผํ ๊ฐ์ด๋ผ๋ ๊ณ ์ ํ ์์๋ฅผ ๋ถ์ฌํจ (์ค๋ณต๋ ์์๊ฐ ์์)
- LAG() : ์ด์ ํ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ๋ ํจ์ (์์ฉ -> ์ ์ผ ํ๋งค ์๋ ๊ธ์ก ์ฐจ์ด ๋ฑ๋ฑ)
- LEAD() : ์ดํ ๊ฐ์ ๊ฐ์ ธ์ค๋ ํจ์
- SUM() OVER() : ๋๊ณ ๊ตฌํ๊ธฐ
- RATIO_TO_REPORT() : ๋น์จ์ ๊ตฌํ๋ ํจ์