집계함수
Aggregate function데이터베이스 관리에서 집계함수나 집계함수는 여러 행의 값을 함께 묶어 하나의 요약값을 형성하는 함수를 말한다.
공통 집계 함수에는 다음이 포함된다.
그 밖의 사항에는 다음이 포함된다.
- Nanmean (NaN 값을 무시하는, "nil" 또는 "null"이라고도 함)
- 스데브
형식적으로 집계 함수는 입력 집합, 멀티셋(가방) 또는 일부 입력 도메인 I의 목록으로 가져와 출력 도메인 O의 요소를 출력한다.[1] 입력 및 출력 도메인은 다음과 같이 동일할 수 있다. SUM
, 또는 다른 것일 수 있다(예: COUNT
.
집계 함수는 일반적으로 수많은 프로그래밍 언어, 스프레드시트 및 관계 대수에서 발생한다.
그 listagg
SQL:2016 표준에[2] 정의된 대로 함수는 여러 행의 데이터를 하나의 연결된 문자열로 집계한다.
분해 가능한 Aggregate 함수
Aggregate 기능은 모든 입력 값을 한 번에 가져야 할 가능성이 있기 때문에 병목 현상을 나타낸다. 분산 컴퓨팅에서는 그러한 연산을 더 작은 조각으로 나누고, 대개 분할과 정복 알고리즘을 통해 병렬로 연산하는 작업을 분배하는 것이 바람직하다.
일부 집계 함수는 하위 집합에 대한 집계를 계산한 다음 이 집계를 집계하여 계산할 수 있다. 예: COUNT
, MAX
, MIN
그리고 SUM
. 다른 경우 서브셋의 보조 숫자를 계산하고, 이 보조 번호를 집계하고, 마지막에 전체 숫자를 계산하여 집계를 계산할 수 있다. 예는 다음과 같다. AVERAGE
(합계와 카운트, 마지막에 나누기) 및 RANGE
(최대값과 최소값, 끝에서 차감). 어떤 경우에는 근사치가 분포될 수 있지만, 다른 경우에는 집합 전체를 한 번에 분석하지 않고는 집계를 계산할 수 없다. 예는 다음과 같다. DISTINCT COUNT
, MEDIAN
그리고 MODE
.
그러한 기능을 분해 가능한 집계함수[3] 또는 분해 가능한 집계함수라고 한다. 가장 간단한 것은 자가복제형 집합함수라고 할 수 있는데, 이러한 함수는 다음과 같은 병합 연산자 이(가) 있을 경우 f로 정의된다.
여기서 은(는) 다중 집합의 결합이다(단일 동형성 참조).
예를 들면 SUM
:
- ( )= 단일 톤의 경우;
- ( Y)= ( X)+ () X)+\ { 즉합치는 단순한 추가다.
COUNT
:
- ( )=
- ( )= ( X)+ ) .
MAX
:
- ( )=
- ( ⊎ Y)= ( ( X), ( )
MIN
:
- ( )= [2]
- ( ⊎ Y)= ( ( X), ( ) Y
예를 들어 자가처분 가능한 집계 함수는 별도로 적용하여 결합(공식적으로, 제품을 가져감)할 수 있으므로, 두 가지 모두를 계산할 수 있다. SUM
그리고 COUNT
동시에 두 개의 번호를 추적함으로써
보다 일반적으로, 분해 가능한 집계함수 f를 최종함수 g와 자체처분 가능한 집계함수 의 구성으로 표현할 수 있는 것으로 정의할 수 있다 예를 들어, = h, ( )= () = g ( ) )=g( AVERAGE
=SUM
/COUNT
그리고 RANGE
=MAX
−MIN
.
MapReduce 프레임워크에서는 이러한 단계를 InitialReduce(개별 레코드/싱글톤 집합의 값), Complex(두 집계에 대한 바이너리 병합), FinalReduce(보조 값에 대한 최종 함수),[4] Shuffle 단계가 InitialReduce 단계로 알려지기 전에 분해 가능한 집합 이동으로 알려져 있다.[5]
분해 가능한 집계 함수는 기본 데이터가 아닌 OLAP 큐브에서 사전 계산된 결과에 대해 집계 쿼리를 계산할 수 있기 때문에 온라인 분석 처리(OLAP)에서 중요하다.[6] 예를 들어, 지원하기가 쉽다. COUNT
, MAX
, MIN
그리고 SUM
OLAP에서는 OLAP 큐브의 각 셀에 대해 계산한 다음 요약("롤업")할 수 있지만, 지원하기는 어렵다. MEDIAN
모든 보기에 대해 별도로 계산해야 하기 때문에.
기타 분해 가능한 Aggregate 함수
집계 데이터의 평균과 표준 편차를 계산하기 위해서는 각 그룹의 총값( availablex = SUM(x)), 총값 수(N=COUNT(x) 및 총 제곱수(σx=i2SUM(x2)) 등 각 그룹에 대해 사용할 수 있어야 한다.[7]
AVG
:
또는
- .
또는, Count(X)=Count(Y)인 경우에만
- .
SUM(x2)
: 그룹의 표준편차를 계산하기 위해서는 값의 제곱합이 중요하다.
STDDEV
:
모든 점에서 동일한 확률을 가진 유한한 모집단의 경우[8][circular reference],
이는 표준 편차가 값의 제곱 평균과 평균 값의 제곱 사이의 차이의 제곱근과 같다는 것을 의미한다.
- .
- .
참고 항목
- 교차 태핑 A.K.A. 분할표
- 데이터 시추
- 데이터 마이닝
- 데이터 처리
- 추출, 변환, 로드
- 접기(고차 함수)
- 그룹화 기준(SQL), SQL 절
- OLAP 큐브
- 온라인 분석 처리
- 피벗 테이블
- 관계 대수
- 분리할 수 없는 상품에 대한 유틸리티 기능#유틸리티 기능의 집합
- 분석을 위한 XML
- 골재아이큐
참조
인용구
- ^ Jesus, Baquero & Almeida 2011, 2 문제 정의, 페이지 3.
- ^ a b Winand, Markus (2017-05-15). "Big News in Databases: New SQL Standard, Cloud Wars, and ACIDRain (Spring 2017)". DZone. Retrieved 2017-06-10.
In December 2016, ISO released a new version of the SQL standard. It introduces new features such as row pattern matching, listagg, date and time formatting, and JSON support.
- ^ Jesus, Baquero & Almeida 2011, 2.1 분해능, 페이지 3-4.
- ^ Yu, Gunda & Isard 2009, 2. 분산 집계, 페이지 2-4.
- ^ Yu, Gunda & Isard 2009, 2. 분산 집계, 페이지 1.
- ^ 장 2017, 페이지 1.
- ^ 잉그. 오스카 보닐라, MBA
- ^ 표준편차#아이덴티티와 수학적 특성
참고 문헌 목록
- Yu, Yuan; Gunda, Pradeep Kumar; Isard, Michael (2009). Distributed aggregation for data-parallel computing: interfaces and implementations. ACM SIGOPS 22nd symposium on Operating systems principles. ACM. pp. 247–260. doi:10.1145/1629575.1629600.
- Jesus, Paulo; Baquero, Carlos; Almeida, Paulo Sérgio (2011). "A Survey of Distributed Data Aggregation Algorithms". arXiv:1110.0725 [cs.DC].
- Zhang, Chao (2017). Symmetric and Asymmetric Aggregate Function in Massively Parallel Computing (Technical report).
추가 읽기
- Grabisch, Michel; Marichal, Jean-Luc; Mesiar, Radko; Pap, Endre (2009). Aggregation functions. Encyclopedia of Mathematics and its Applications. Vol. 127. Cambridge: Cambridge University Press. ISBN 978-0-521-51926-7. Zbl 1196.00002.
- Oracle Aggregate 함수: MAX, MIN, Count, SUM, AVG 예제