지원 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
9723_9779현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

kèo bóng đá c1 9.20. 집계 기능

집계 함수입력 값 세트에서 단일 결과를 계산합니다. 내장 된 일반 집계 함수는에 나열되어 있습니다.표 9-49표 9-50. 내장형 순서 세트 집계 함수는에 나열되어 있습니다.표 9-51and표 9-52. 집계 함수와 밀접한 관련이있는 그룹화 작업은에 나와 있습니다.표 9-53. 집계 함수에 대한 특별 구문 고려 사항은에 설명되어 있습니다.섹션 4.2.7. 찾다섹션 2.7추가 소개 정보.

표 9-49. 일반 목적 집계 기능

기능 인수 유형 (s) 반환 유형 설명
array_agg (표현) 모든 비 배열 유형 인수 유형의 배열 널을 포함한 입력 값, 배열에 연결
array_agg (표현) 12508_12524 12532_12560 입력 배열 하나는 하나의 더 높은 차원의 배열에 연결되어 있습니다 (입력은 모두 동일한 치수를 가져야하며 비어 있거나 null이 될 수 없습니다)
avg (표현) smallint, int, bigint, Real, 이중 정밀, 숫자또는간격 숫자정수 유형 인수의 경우이중 정밀도플로팅 포인트 인수의 경우, 그렇지 않으면 인수 데이터 유형과 동일합니다 모든 비 널 입력 값의 평균 (산술 평균)
bit_and (표현) smallint, int, bigint또는비트 13521_13549 비트 와이드 및 모든 비 널 입력 값의 또는 없음
bit_or (표현) smallint, int, bigint또는비트 인수 데이터 유형과 동일 비트 또는 모든 비 널 입력 값의 또는 없음
bool_and (표현) bool bool 모든 입력 값이 true 인 경우 true
bool_or (표현) bool bool 적어도 하나의 입력 값이 true 인 경우 true
count (*) bigint 입력 행 수
count (표현) Any bigint 값의 값에 대한 입력 행 수표현
Every (표현) bool bool 동등한bool_and
json_agg (표현) Any JSON NULLS를 포함한 값을 JSON 배열로 집계합니다
JSONB_AGG (표현) any JSONB JSON 배열로 널을 포함한 값을 집계합니다
json_object_agg (이름, value) (AND, AND) JSON 집계 이름/값 쌍은 JSON 객체로서; 값은 널가 될 수 있지만 이름은 아닙니다
jsonb_object_agg (이름, value) (AND, AND) JSONB 집계 이름/값 쌍은 JSON 객체로서; 값은 널가 될 수 있지만 이름은 아닙니다
max (표현) 숫자, 문자열, 날짜/시간, 네트워크 또는 열거 유형 또는 이러한 유형의 배열 인수 유형과 동일 최대 값표현모든 비 널 입력 값에 걸쳐
min (표현) 숫자, 문자열, 날짜/시간, 네트워크 또는 열거 유형 또는 이러한 유형의 배열 인수 유형과 동일 최소값표현모든 비 널 입력 값에 걸쳐
String_agg (표현, Delimiter) (텍스트, 텍스트) 또는 (BYTEA, BYTEA) 인수 유형과 동일 Delimiter로 분리 된 문자열에 연결된 비 널 입력 값
Sum (표현) smallint, int, bigint, Real, 이중 정밀, 숫자, 간격또는Money bigintforsmallint또는int인수,숫자forbigint인수, 그렇지 않으면 인수 데이터 유형과 동일합니다 합계표현17837_17872
xmlagg (표현) XML XML NULL XML 값의 연결 (참조섹션 9.14.1.7)

count,이 함수는 행을 선택할 때 널 값을 반환합니다. 특히,SumOF 노 행은 예상대로 0이 아닌 널을 반환합니다.array_agg입력 행이 없을 때 빈 배열 대신 NULL을 반환합니다. 그만큼Coalesce기능을 사용하여 필요할 때 NULL로 0 또는 빈 배열을 대체 할 수 있습니다.

참고 :부울 집계bool_andandbool_or표준 SQL 집계에 해당EveryandAny또는일부. forAnyand일부, 표준 구문에 내장 된 모호성이있는 것 같습니다 :

SELECT b1 = ANY((SELECT b2 FROM t2 ...)) FROM t1 ...;

여기Any하위 쿼리가 부울 값으로 한 행을 반환하는 경우 하위 쿼리를 도입하거나 집계 함수로 간주 될 수 있습니다. 따라서이 집계에는 표준 이름이 주어질 수 없습니다.

참고 :다른 SQL 데이터베이스 관리 시스템과 협력하는 데 익숙한 사용자는의 성능에 실망 할 수 있습니다count전체 테이블에 적용될 때 집계. 쿼리 :

select count (*)에서 선택하십시오;

테이블 크기에 비례하는 노력이 필요합니다 :PostgreSQL표에 모든 행을 포함하는 전체 테이블 또는 인덱스 전체를 스캔해야합니다.

집계 함수array_agg, JSON_AGG, JSONB_AGG, json_object_agg, JSONB_OBJECT_AGG, String_aggxmlagg및 유사한 사용자 정의 집계 함수는 입력 값의 순서에 따라 의미있게 다른 결과 값을 생성합니다. 이 순서는 기본적으로 지정되지 않지만 AN을 작성하여 제어 할 수 있습니다.주문 by집계 호출 내의 조항, 다음에 표시된대로섹션 4.2.7. 또는 정렬 된 서브 쿼리에서 입력 값을 공급하는 것이 일반적으로 작동합니다. 예를 들어:

XMLAGG (X)를 선택하여 (X)에서 탭으로 XMLAGG (X)를 선택하십시오 (X)

그러나이 구문은 SQL 표준에서 허용되지 않으며 다른 데이터베이스 시스템에 대해 휴대용이 없습니다.

표 9-5021186_21385n, 모든 입력 표현식이 널이 아닌 입력 행의 수를 의미합니다. 모든 경우에, 계산이 의미가 없다면 NULL이 반환됩니다. 예를 들어nis ZERO.

표 9-50. 통계에 대한 집계 함수

기능 인수 유형 반환 유형 설명
corr (y, x) 이중 정밀 이중 정밀 상관 계수
covar_pop (y, x) 이중 정밀 이중 정밀 인구 공분산
covar_samp (y, x) 이중 정밀 더블 정밀도 샘플 공분산
recr_avgx (y, x) 이중 정밀도 이중 정밀 독립 변수 평균 (Sum (x)/n)
lecr_avgy (y, x) 이중 정밀 이중 정밀 종속 변수 평균 (Sum (y)/n)
lect_count (y, x) 이중 정밀 bigint 두 표현식이 아닌 입력 행 수
lecc_intercept (y, x) 이중 정밀 이중 정밀도 y y (에 의해 결정된 최소 제곱에 맞는 선형 방정식의 간격x, y) Pairs
rec_r2 (y, X) 이중 정밀 이중 정밀 상관 계수의 제곱
lect_slope (y, x) 이중 정밀 이중 정밀 (에 의해 결정된 최소 제곱에 맞는 선형 방정식의 경사x, y) pairs
lect_sxx (y, x) 이중 정밀 이중 정밀 Sum (x^2) - Sum (x)^2/n("사각형의 합"독립 변수)
lecr_sxy (y, x) 이중 정밀 이중 정밀 Sum (x*y) - Sum (x) * sum (y)/n("제품의 합"독립 시간 종속 변수)
lecr_syy (y, x) 이중 정밀 이중 정밀 Sum (y^2) - Sum (y)^2/n("사각형의 합"종속 변수)
stddev (표현) smallint, int, bigint, Real, 이중 정밀또는숫자 이중 정밀플로팅 포인트 인수, 그렇지 않으면숫자 역사적 별칭을위한stddev_samp
stddev_pop (표현) smallint, int, bigint, Real, 이중 정밀또는숫자 이중 정밀플로팅 포인트 인수, 그렇지 않으면숫자 입력 값의 인구 표준 편차
stddev_samp (표현27313_27316 smallint, int, bigint, Real, 이중 정밀​​또는숫자 이중 정밀플로팅 포인트 인수, 그렇지 않으면숫자 입력 값의 샘플 표준 편차
분산(표현) smallint, int, bigint, Real, 이중 정밀또는숫자 이중 정밀플로팅 포인트 인수, 그렇지 않으면숫자 역사적 별칭을위한var_samp
var_pop(표현) smallint, int, bigint, real, 이중 정밀또는숫자 이중 정밀플로팅 포인트 인수, 그렇지 않으면숫자 입력 값의 인구 분산 (모집단 표준 편차의 제곱)
var_samp(28783_28795) smallint, int, bigint, Real, 이중 정밀또는숫자 이중 정밀플로팅 포인트 인수, 그렇지 않으면숫자 입력 값의 샘플 분산 (샘플 표준 편차의 제곱)

표 9-51를 사용하는 일부 집계 함수를 보여줍니다.주문 세트 집계구문. 이러한 기능은 때때로라고도합니다."역 분포"기능.

표 9-51. 주문 세트 집계 함수

기능 직접 인수 유형 (S) 집계 인수 유형 (S) 반환 유형 설명
mode () 그룹 내 모드 (order bySort_Expression) 정렬 가능한 유형 정렬 식과 동일 가장 빈번한 입력 값을 반환합니다 (여러 개의 똑같이 똑같은 결과가있는 경우 첫 번째 첫 번째 선택 값)
백분위 수석 (fraction) 그룹 내 (주문 bySort_Expression) 이중 정밀도 이중 정밀도또는간격 30567_30592 연속 백분위 수 : 순서에서 지정된 분수에 해당하는 값을 반환하고 필요한 경우 인접한 입력 항목간에 보간
백분위 수석 (fractions) 그룹 내 (주문 bySort_Expression) 이중 정밀 [] 이중 정밀도또는간격 정렬 식 유형 배열 다중 연속 백분위 수 :의 모양과 일치하는 결과 배열을 반환합니다FRACTION매개 변수, 각각이 아닌 요소가 해당 백분위 수에 해당하는 값으로 대체
백분석 _DISC (fraction) 그룹 내의 (주문Sort_Expression) 이중 정밀 정렬 가능한 유형 정렬 식과 동일 개별 백분위 수 : 주문의 위치가 지정된 분수를 초과하거나 초과하는 첫 번째 입력 값을 반환합니다
백분석 _DISC (FRACTION) 그룹 내 (주문 bySort_Expression) 이중 정밀 [] 정렬 가능한 유형 정렬 식 유형 배열 다중 개별 백분위 수 :의 모양과 일치하는 결과의 배열을 반환합니다fractions매개 변수, 각각의 비 널 요소가 해당 백분위 수에 해당하는 입력 값으로 대체

나열된 모든 집계32402_32414정렬 된 입력에서 널 값을 무시하십시오. 를 취하는 사람들을 위해fraction매개 변수, 분수 값은 0과 1 사이 여야합니다. 그렇지 않으면 오류가 발생합니다. 그러나 널 분수 값은 단순히 널 결과를 생성합니다.

에 나열된 각 집계표 9-52에 정의 된 동일한 이름의 창 함수와 관련이 있습니다섹션 9.21. 각각의 경우, 집계 결과는 관련 창 함수가에 반환 한 값입니다."가상"행으로 구성된 행args, 그러한 행이 정렬 된 줄 그룹에 추가 된 경우Sorted_args.

표 9-52. 가상 세트 집계 함수

기능 직접 인수 유형 (S) 집계 인수 유형 (S) 반환 유형 설명
RANK (args) 그룹 내 (order bySorted_args) variadic "Any" variadic "Any" bigint 중복 행에 대한 간격이있는 가상 행의 순위
Dense_Rank (args) 그룹 내 (주문 내Sorted_args) variadic "Any" variadic "Any" bigint 간격없이 가상의 행의 순위
퍼센트 랑크 (args) 그룹 내 (order bySorted_args) variadic 34666_34673 variadic "Any" 이중 정밀도 0 ~ 1 범위의 가상 행의 상대 순위
cume_dist (args) 그룹 내 (주문 by)Sorted_args) variadic "Any" variadic "Any" 이중 정밀도 35229_35285n~ 1

이 가상 세트 집계 각각에 대해, 직접 인수 목록args에 주어진 집계 된 인수의 수와 유형과 일치해야합니다.Sorted_args. 대부분의 내장 골재와 달리, 이러한 집계는 엄격하지 않으며, 널이 포함 된 입력 행을 삭제하지 않습니다. null 값은에 지정된 규칙에 따라 정렬됩니다.주문 by절.

표 9-53. 그룹화 작업

기능 반환 유형 설명
그룹화 (args ...) 정수 현재 그룹화 세트에 포함되지 않은 인수를 나타내는 정수 비트 마스크

그룹화 작업은 그룹화 세트와 함께 사용됩니다 (참조섹션 7.2.4) 결과 행을 구별합니다. 에 대한 논쟁그룹화작동은 실제로 평가되지 않지만에 제공된 정확한 표현과 일치해야합니다.그룹 by36739_37021

= 선택 *에서 initems_sold;만들기 | 모델 | 매상
-------+-------+-------
 foo | GT |  10
 foo | 투어 |  20
 바 | 도시 |  15
 바 | 스포츠 |  5
(4 줄)= rollup (make, model)에 의한 imps _sold 그룹의 제조업, 모델, 그룹화 (제조, 모델), 합 (판매);를 선택하십시오.만들기 | 모델 | 그룹화 | 합집합
-------+-------+----------+-----
 foo | GT |        0 | 10
 foo | 투어 |        0 | 20
 바 | 도시 |        0 | 15
 바 | 스포츠 |        0 | 5
 foo |       |        1 | 30
 바 |       |        1 | 20
       |       |        3 | 50
(7 줄)