![[PostgreSQL] ์๋์ฐ ํจ์(Window Functions)์ ๊ฐ๋
, ์ฑ๋ฅ ๋ฐ ์ฌ์ฉ๋ฒ (over, sum/rank/ntitle/cume_dist ๋ฑ...)](/images/posts/40/img.png)
[PostgreSQL] ์๋์ฐ ํจ์(Window Functions)์ ๊ฐ๋ , ์ฑ๋ฅ ๋ฐ ์ฌ์ฉ๋ฒ (over, sum/rank/ntitle/cume_dist ๋ฑ...)
1. ์๋์ฐ ํจ์ (Window Functions)๋? ์๋์ฐ ํจ์๋ ํ๊ณผ ํ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ฝ๊ฒ ์ ์ํ๊ธฐ ์ํด ๋ง๋ ํจ์์ด๋ค. ์ด ๊ธฐ๋ฅ์ย ์ผ๋ฐ ์ง๊ณํจ์์ ์ฐ์ฐ๊ณผ ์ ์ฌํ์ง๋ง, ์ผ๋ฐ ์ง๊ณํจ์๊ฐ ํ ๊ฐ๊ฐ์ ๋จ์ผ ๊ทธ๋ฃนํํด์ ์ถ๋ ฅํ๋ ๋ฐ๋ฉด์, ์๋์ฐ ํจ์๋ ๊ฐ๊ฐ์ ํ๋ค์ด ๊ทธ๋ฃนํ๋์ง ์์ผ๋ฉฐ ๋ณ๋์ ID๋ฅผ ๊ฐ์ง๋ค. ๊ทธ๋ ๊ธฐ์ ์๋์ฐ ํจ์๋ ํ์ฌ row์ ์ ๋ณด๋ณด๋ค ๋ ๋ง์ ์ ๋ณด์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ์ผ๋ฐ์ง๊ณํจ์ : COUNT() + GROUP BY-> ๊ทธ๋ฃน๋ณ 1๊ฐ์ ํ ์ถ๋ ฅ (๊ทธ๋ฃน ๊ฐ์๋งํผ ์ถ๋ ฅ, ์๋ฅด๊ธฐ + ์ง์ฝ) ์๋์ฐ์ง๊ณํจ์ : COUNT() OVER (PARTITION BY) -> ID๊ฐ์๋งํผ ํ ์ถ๋ ฅ (ํ์ ๊ฐ์๊ฐ ์ค์ด๋ค์ง ์๋๋ค, ์๋ฅด๊ธฐ) ...
![[PostgreSQL] ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์(Inheritance)์ ๊ฐ๋
๊ณผ ์ฌ์ฉ๋ฒ ๋ฐ ์ฑ๋ฅ๋น๊ต (Inherits, Only)](/images/posts/39/img.png)
![[PostgreSQL] ๋ ์ง ํํ ๊ฒ์ฆํ๊ธฐ (ERROR: date/time field value out of range)](/images/posts/38/img.png)
![[Java] ๊ฐ์ ์ค๋ ๋ (Virtual Threads)๋? ์๋ฐ 21์ ๊ฐ์์ค๋ ๋ (Virtual Thread) ๋์](/images/posts/37/img.png)
![[Java] Switch์ else-if์ ํจ์จ์ฑ ๋น๊ต (Switch์ else-if ์ค์ ์ด๋ค ๊ฑธ ์ฌ์ฉํด์ผ ํ ๊น?)](/images/posts/36/img.png)