๋ชฉ์ฐจ
1. COUNT( ) OVER( )
- COUNT ํจ์๋ฅผ OVER์ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด GROUP BY์ ์ ์ฌ์ฉํ์ง ์๊ณ ์ ์ฒด ๊ฑด์, ๊ทธ๋ฃน๋ณ ๊ฑด์๋ฅผ ์ง๊ณํด์ ๊ฐ ํ์ ํ์ํ ์ ์๋ค.
1) ์ ์ฒด ์ด ๊ฑด์ ๊ตฌํ๊ธฐ
COUNT(*) OVER()
SELECT *, COUNT(*) OVER() AS TOTAL_COUNT
FROM ECOLI_DATA
๋จ์ํ COUNT(*)๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์กฐํ๋ ๋ฐ์ดํฐ์ ์ด ๊ฑด์๋ฅผ ๊ตฌํ๋ค.
TOTAL_COUNT > ๋ชจ๋ ๋์ผํ๊ฒ ์ ์ฒด ๋ฐ์ดํฐ ๊ฑด์ ๊ฐ์ ํ์ํจ.

* OVER ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์กฐํ๋ ํ ORDER BY ์คํ๋๊ธฐ ๋ฐ๋ก ์ ์ ์คํ๋จ.
2) ์์ฐจ์ ๋์ ๊ฑด์ ๊ตฌํ๊ธฐ
COUNT(*) OVER(ORDER BY COLNAME) AS ALIAS
SELECT *, COUNT(*) OVER(ORDER BY PARENT_ID DESC) AS PARENT_CNT
FROM ECOLI_DATA
OVER ์ ๋ด๋ถ์ ORDER BY๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ ๋ ฌ์ ๋จผ์ ํ ํ, ์์ฐจ์ ์ผ๋ก ๊ฑด์๋ฅผ ๋์ ์ง๊ณํ๋ค.
PARENT_ID์ ๋ด๋ฆผ์ฐจ์์ ๊ธฐ์ค์ผ๋ก ๋์ ๊ฐ์ด PARENT_CNT์ ๊ฐ์ผ๋ก ๋ค์ด๊ฐ ๊ฑธ ํ์ธํ ์ ์๋ค.
(PARENT_CNT์ ๊ฐ์ด Uniqueํ์ง ์์ผ๋ฏ๋ก 1๋ถํฐ ์์ฐจ์ ์ผ๋ก ํ์๋์ง ์์๋ค.)

3) ๊ทธ๋ฃน๋ณ ์ด ๊ฑด์ ๊ตฌํ๊ธฐ
COUNT(*) OVER(PARTITION BY COLNAME) AS ALIAS
SELECT *, COUNT(*) OVER(PARTITION BY DIFFERENTIATION_DATE ) AS DATE_CNT
FROM ECOLI_DATA
PARTITION BY๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ทธ๋ฃน๋ณ๋ก ์ด ๊ฑด์๋ฅผ ๊ตฌํด์ ํ์ํ๋ค.

'๐๏ธ ๋ฐ์ดํฐ ๋ถ์ > ๐ SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LAG, LEAD๋ก ์ด์ , ๋ค์ํ ๊ฐ์ ธ์ค๊ธฐ (3) | 2024.12.14 |
---|---|
COALESCE( )๋ฅผ ํตํด NULL๊ฐ ๋ณํํ๊ธฐ (1) | 2024.12.14 |
์์ํจ์ : ROW_NUMBER( ) ์ RANK( ), DENSE_RANK( ) ์ ๊ฐ๋ ๊ณผ ์ฐจ์ด (4) | 2024.12.14 |
DATE ๋ ์ง ํฌ๋งท ๊ด๋ จ ํจ์ : DATE_FORMAT (3) | 2024.12.08 |
์ฝ๋ฉํ ์คํธ ๋๋น ํจ์ ๋ชจ์ (MYSQL) (1) | 2024.12.08 |