Page History
...
Group By | PARTITION BY |
---|---|
SELECT t.address,count(*) FROM address t GROUP BY address | SELECT name,address,COUNT(*) OVER(PARTITION BY address) FROM address |
자르기 기능과 동시에 집계기능이 수행되어 원래의 데이터에서 요약 집계 처리가 됩니다. | GroupBy와 비교를 하면, 집계기능을 사용하기위해 요약처리가 안되고 레코드수를 그대로 유지하면서 원하는 집계수를 볼수가 있으며 자르기 기능만 수행되었다라고 보시면됩니다. 이해를 돕기위해 색상으로 데이터를 사각형 분리를하였으며 논리적으로 파티션 혹은 자른 사각형이 윈도우같다고 하여 윈도우처리 되었다라고 표현됩니다. |
나이 많은순으로 랭크를 내고자 한다고하면, 윈도우함수인 RANK()를 활용하면 간단하게 구할수있습니다. 이 기능은 Group BY와 서브쿼리와 결합하여 구현하거나 어플리케이션내에서 랭킹을 부여하는 방법으로 구현 할수도 있겠으나, 윈도우함수 사용이 권장됩니다. postgresql기준으로 더 자세한 윈도우함수 종류와 사용방법을 살펴볼수 있습니다. https://www.postgresql.org/docs/10/static/functions-window.html |
이와 같이 윈도우 함수는 복잡한 집계및 집약처리에 유용하게 사용이됩니다, 하지만 Group BY에의한 집계 함수는
...