Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

JOINUNION

  • 두개의 필드가 모두 합해지는 병렬조합
  • 필드명이 모두 합해져서,동일 필드명 사용에 유의해야합니다.
  • 엔티티가 다른 관계도가 있는 두 테이블을 하나의 결과로 만들때 사용됩니다.
  • 상하(직렬)조합이며,
  • 합하려는 양쪽 필드의 개수가 동일해야함
  • 컬럼명은 첫번째 선택된 테이블의 컬럼명에 영향받음
  • 전체행 중복제거 연산(Distinct)이 수행되기 때문에 성능에 유의
  • 엔티티가 유사한 결과 테이블을 하나의 결과로 만들때 사용됩니다.



윈도우 함수

MYSQL 5,6에서는 윈도우 함수가 지원되지 않아, Postgres 를 이용하였습니다. 

다중DB 환경설정 에서 두가지 DB를 설정하여 운영하는 방법을 정리하였으니 참고하세요 


Group ByPARTITION BY
SELECT t.address,count(*) FROM address t GROUP BY addressSELECT name,address,COUNT(*) OVER(PARTITION BY address) FROM address

Image Added

Image Added

자르기 기능과 동시에 집계기능이 수행되어 원래의 데이터에서

요약 집계 처리가 됩니다.

GroupBy와 비교를 하면, 집계기능을 사용하기위해 요약처리가 안되고

레코드수를 그대로 유지하면서 원하는 집계수를 볼수가 있으며

자르기 기능만 수행되었다라고 보시면됩니다.

이해를 돕기위해 색상으로 데이터를 사각형 분리를하였으며

논리적으로 파티션 혹은 자른 사각형이 윈도우같다고 하여 윈도우처리

되었다라고 표현됩니다.


이와 같이 윈도우 함수는  복잡한 집계및 집약처리에 유용하게 사용이됩니다, 하지만  Group BY에의한 집계 함수는

대부분의 DB에서 표준으로 사용가능하지만  논리적인 파티션(Mysql에서 파티션은 물리적 파티션의 의미로 사용됩니다.)

기능인 윈도우함수는 SQL표준이 모두 적용이 안되어있으며 DB마다 사용방법과 지원함수가 각각 틀려서

JPA에서 표준인터페이스가 존재하지 않으며, 네이티브 SQL로 사용하거나 JPQL을 사용하기위해서는 방언 설정이 필요하게됩니다.