Page History
...
JOIN | UNION |
---|---|
|
|
윈도우 함수
MYSQL 5,6에서는 윈도우 함수가 지원되지 않아, Postgres 를 이용하였습니다.
다중DB 환경설정 에서 두가지 DB를 설정하여 운영하는 방법을 정리하였으니 참고하세요
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와 비교를 하면, 집계기능을 사용하기위해 요약처리가 안되고 레코드수를 그대로 유지하면서 원하는 집계수를 볼수가 있으며 자르기 기능만 수행되었다라고 보시면됩니다. 이해를 돕기위해 색상으로 데이터를 사각형 분리를하였으며 논리적으로 파티션 혹은 자른 사각형이 윈도우같다고 하여 윈도우처리 되었다라고 표현됩니다. |
이와 같이 윈도우 함수는 복잡한 집계및 집약처리에 유용하게 사용이됩니다, 하지만 Group BY에의한 집계 함수는
대부분의 DB에서 표준으로 사용가능하지만 논리적인 파티션(Mysql에서 파티션은 물리적 파티션의 의미로 사용됩니다.)
기능인 윈도우함수는 SQL표준이 모두 적용이 안되어있으며 DB마다 사용방법과 지원함수가 각각 틀려서
JPA에서 표준인터페이스가 존재하지 않으며, 네이티브 SQL로 사용하거나 JPQL을 사용하기위해서는 방언 설정이 필요하게됩니다.