집계 함수

집계 함수 (Aggregate Functions)

집계 함수는 여러 행을 결합해 단일 값으로 만들어요. 스칼라 함수나 윈도우 함수와 달리 결과의 카디널리티를 바꾸기 때문에, SELECTHAVING 절에서만 사용할 수 있어요.

출처: 문서

본문

예제

amount 컬럼의 합을 포함하는 단일 행을 만들어요.

SELECT sum(amount)
FROM sales;

고유 지역마다 한 행씩, 각 그룹의 amount 합을 포함해요.

SELECT region, sum(amount)
FROM sales
GROUP BY region;

amount 합이 100보다 큰 지역만 반환해요.

SELECT region
FROM sales
GROUP BY region
HAVING sum(amount) > 100;

region 컬럼의 고유 값 수를 반환해요.

SELECT count(DISTINCT region)
FROM sales;

두 값을 반환해요. amount의 총 합과, FILTER로 region이 north인 컬럼을 뺀 amount 합.

SELECT sum(amount), sum(amount) FILTER (region != 'north')
FROM sales;

amount 컬럼 순서로 정렬된 모든 지역 목록을 반환해요.

SELECT list(region ORDER BY amount DESC)
FROM sales;

first() 집계 함수로 첫 판매의 amount를 반환해요.

SELECT first(amount ORDER BY date ASC)
FROM sales;

문법

집계 함수는 여러 행을 결합해 단일 값으로 만드는 함수예요. 집계는 결과의 카디널리티를 바꾸기 때문에 스칼라 함수나 윈도우 함수와 다르며, SQL 쿼리의 SELECTHAVING 절에서만 사용할 수 있어요.

집계 함수의 DISTINCT

DISTINCT 절이 제공되면 집계 계산에서 고유한 값만 고려돼요. 이는 일반적으로 고유 요소 수를 얻기 위해 count 집계와 함께 사용되지만, 시스템의 모든 집계 함수와 함께 사용할 수 있어요. 중복 값에 영향을 받지 않는 일부 집계(예: min, max)가 있으며, 이들에 대해서는 이 절이 파싱되고 무시돼요.

집계 함수의 ORDER BY

함수 호출의 마지막 인자 뒤에 ORDER BY 절을 제공할 수 있어요. 절 앞에 쉼표 구분자가 없다는 점에 주의해요.

SELECT ⟨aggregate_function⟩(⟨arg⟩, ⟨sep⟩ ORDER BY ⟨ordering_criteria⟩);

이 절은 함수를 적용하기 전에 집계되는 값이 정렬되도록 보장해요. 대부분의 집계 함수는 순서에 영향을 받지 않으며, 이들에게는 이 절이 파싱되고 버려져요. 그러나 순서에 민감한 일부 집계(예: first, last, list, string_agg / group_concat / listagg)는 순서 없이 비결정적 결과를 낼 수 있어요. 인자를 정렬하면 이들을 결정적으로 만들 수 있어요.

예를 들어:

CREATE TABLE tbl AS
    SELECT s FROM range(1, 4) r(s);

SELECT string_agg(s, ', ' ORDER BY s DESC) AS countdown
FROM tbl;
countdown
3, 2, 1

NULL 값 처리

모든 일반 집계 함수는 list (array_agg), first (arbitrary), last를 제외하고 NULL을 무시해요. list에서 NULL을 제외하려면 FILTER을 사용할 수 있어요. first에서 NULL을 무시하려면 any_value 집계를 사용할 수 있어요.

count를 제외한 모든 일반 집계 함수는 빈 그룹에서 NULL을 반환해요. 특히 list는 빈 목록을 반환하지 않고, sum은 0을 반환하지 않으며, string_agg는 빈 문자열을 반환하지 않아요.

일반 집계 함수

아래 표는 사용 가능한 일반 집계 함수를 보여줘요.

함수 설명
any_value(arg) arg에서 첫 번째 non-null 값을 반환해요. 이 함수는 정렬의 영향을 받아요.
arg_max(arg, val) 최대 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. arg 또는 val 표현식 값이 NULL인 행은 무시돼요. 이 함수는 정렬의 영향을 받아요.
arg_max(arg, val, n) n 값에 대한 arg_max의 일반화된 경우: val 내림차순으로 정렬된 상위 n 행의 arg 표현식을 포함하는 LIST를 반환해요. 이 함수는 정렬의 영향을 받아요.
arg_max_null(arg, val) 최대 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. val 표현식이 NULL로 평가되는 행은 무시돼요. 이 함수는 정렬의 영향을 받아요.
arg_min(arg, val) 최소 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. arg 또는 val 표현식 값이 NULL인 행은 무시돼요. 이 함수는 정렬의 영향을 받아요.
arg_min(arg, val, n) arg_min의 일반화된 경우: val 오름차순으로 정렬된 "하위" n 행의 arg 표현식을 포함하는 LIST를 반환해요. 이 함수는 정렬의 영향을 받아요.
arg_min_null(arg, val) 최소 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. val 표현식이 NULL로 평가되는 행은 무시돼요. 이 함수는 정렬의 영향을 받아요.
avg(arg) arg의 모든 non-null 값의 평균을 계산해요. 이 함수는 정렬의 영향을 받아요.
bit_and(arg) 주어진 표현식의 모든 비트에 대한 비트 AND를 반환해요.
bit_or(arg) 주어진 표현식의 모든 비트에 대한 비트 OR를 반환해요.
bit_xor(arg) 주어진 표현식의 모든 비트에 대한 비트 XOR를 반환해요.
bitstring_agg(arg) non-null(정수) 값의 범위에 해당하는 길이의 비트 문자열을 반환하고, 각 (고유) 값의 위치에 비트가 설정돼요.
bool_and(arg) 모든 입력 값이 true이면 true, 그렇지 않으면 false를 반환해요.
bool_or(arg) 어떤 입력 값이 true이면 true, 그렇지 않으면 false를 반환해요.
count() 행 수를 반환해요.
count(arg) argNULL이 아닌 행 수를 반환해요.
countif(arg) argtrue인 행 수를 반환해요.
favg(arg) 더 정확한 부동소수점 합산(Kahan Sum)을 사용해 평균을 계산해요. 이 함수는 정렬의 영향을 받아요.
first(arg) arg의 첫 번째 값(null 또는 non-null)을 반환해요. 이 함수는 정렬의 영향을 받아요.
fsum(arg) 더 정확한 부동소수점 합산(Kahan Sum)을 사용해 합을 계산해요. 이 함수는 정렬의 영향을 받아요.
geometric_mean(arg) arg의 모든 non-null 값의 기하 평균을 계산해요. 이 함수는 정렬의 영향을 받아요.
histogram(arg) 버킷과 개수를 나타내는 키-값 쌍의 MAP를 반환해요.
histogram(arg, boundaries) 제공된 상한 boundaries와 데이터 타입의 해당 bin(왼쪽 열기, 오른쪽 닫기 파티션)에 있는 요소 개수를 나타내는 키-값 쌍의 MAP를 반환해요. 제공된 모든 boundaries보다 큰 요소가 나타나면 데이터 타입의 최대값 경계가 자동으로 추가돼요. is_histogram_other_bin 참고. 경계는 예를 들어 equi_width_bins로 제공할 수 있어요.
histogram_exact(arg, elements) 요청된 요소와 그 개수를 나타내는 키-값 쌍의 MAP를 반환해요. 다른 요소가 나타나면 데이터 타입 특정의 catch-all 요소가 자동으로 추가돼요. is_histogram_other_bin 참고.
histogram_values(source, col_name, technique, bin_count) bin의 상한 경계와 개수를 반환해요.
last(arg) 컬럼의 마지막 값을 반환해요. 이 함수는 정렬의 영향을 받아요.
list(arg) 컬럼의 모든 값을 포함하는 LIST를 반환해요. 이 함수는 정렬의 영향을 받아요.
max(arg) arg에 있는 최대값을 반환해요. 이 함수는 distinctness의 영향을 받지 않아요.
max(arg, n) arg 내림차순으로 정렬된 "상위" n 행의 arg 값을 포함하는 LIST를 반환해요.
min(arg) arg에 있는 최소값을 반환해요. 이 함수는 distinctness의 영향을 받지 않아요.
min(arg, n) arg 오름차순으로 정렬된 "하위" n 행의 arg 값을 포함하는 LIST를 반환해요.
product(arg) arg의 모든 non-null 값의 곱을 계산해요. 이 함수는 정렬의 영향을 받아요.
string_agg(arg) 컬럼 문자열 값을 쉼표 구분자(,)로 연결해요. 이 함수는 정렬의 영향을 받아요.
string_agg(arg, sep) 컬럼 문자열 값을 구분자로 연결해요. 이 함수는 정렬의 영향을 받아요.
sum(arg) arg의 모든 non-null 값의 합을 계산해요 / arg가 boolean이면 true 값을 셉니다. 이 함수의 부동소수점 버전은 정렬의 영향을 받아요.
weighted_avg(arg, weight) 각 값이 해당 weight로 조정되는 arg의 모든 non-null 값의 가중 평균을 계산해요. weightNULL이면 해당 arg 값은 건너뜁니다. 이 함수는 정렬의 영향을 받아요.
any_value(arg)

| 설명 | arg에서 첫 번째 NULL이 아닌 값을 반환해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | any_value(A) |

arg_max(arg, val)

| 설명 | 최대 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. arg 또는 val 표현식 값이 NULL인 행은 무시돼요. 이 함수는 정렬의 영향을 받아요. | | 예제 | arg_max(A, B) | | 별칭 | argmax(arg, val), max_by(arg, val) |

arg_max(arg, val, n)

| 설명 | n 값에 대한 arg_max의 일반화된 경우: val 내림차순으로 정렬된 상위 n 행의 arg 표현식을 포함하는 LIST를 반환해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | arg_max(A, B, 2) | | 별칭 | argmax(arg, val, n), max_by(arg, val, n) |

arg_max_null(arg, val)

| 설명 | 최대 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. val 표현식이 NULL로 평가되는 행은 무시돼요. 이 함수는 정렬의 영향을 받아요. | | 예제 | arg_max_null(A, B) |

arg_min(arg, val)

| 설명 | 최소 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. arg 또는 val 표현식 값이 NULL인 행은 무시돼요. 이 함수는 정렬의 영향을 받아요. | | 예제 | arg_min(A, B) | | 별칭 | argmin(arg, val), min_by(arg, val) |

arg_min(arg, val, n)

| 설명 | n 값에 대한 arg_min의 일반화된 경우: val 오름차순으로 정렬된 하위 n 행의 arg 표현식을 포함하는 LIST를 반환해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | arg_min(A, B, 2) | | 별칭 | argmin(arg, val, n), min_by(arg, val, n) |

arg_min_null(arg, val)

| 설명 | 최소 val을 가진 행을 찾아 해당 행에서 arg 표현식을 계산해요. val 표현식이 NULL로 평가되는 행은 무시돼요. 이 함수는 정렬의 영향을 받아요. | | 예제 | arg_min_null(A, B) |

avg(arg)

| 설명 | arg의 모든 non-null 값의 평균을 계산해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | avg(A) | | 별칭 | mean |

bit_and(arg)

| 설명 | 주어진 표현식의 모든 비트에 대한 비트 AND를 반환해요. | | 예제 | bit_and(A) |

bit_or(arg)

| 설명 | 주어진 표현식의 모든 비트에 대한 비트 OR를 반환해요. | | 예제 | bit_or(A) |

bit_xor(arg)

| 설명 | 주어진 표현식의 모든 비트에 대한 비트 XOR를 반환해요. | | 예제 | bit_xor(A) |

bitstring_agg(arg)

| 설명 | non-null(정수) 값의 범위에 해당하는 길이의 비트 문자열을 반환하고, 각 (고유) 값의 위치에 비트가 설정돼요. | | 예제 | bitstring_agg(A) |

bool_and(arg)

| 설명 | 모든 입력 값이 true이면 true, 그렇지 않으면 false를 반환해요. | | 예제 | bool_and(A) |

bool_or(arg)

| 설명 | 어떤 입력 값이 true이면 true, 그렇지 않으면 false를 반환해요. | | 예제 | bool_or(A) |

count()

| 설명 | 행 수를 반환해요. | | 예제 | count() | | 별칭 | count(*) |

count(arg)

| 설명 | argNULL이 아닌 행 수를 반환해요. | | 예제 | count(A) |

countif(arg)

| 설명 | argtrue인 행 수를 반환해요. | | 예제 | countif(A) |

favg(arg)

| 설명 | 더 정확한 부동소수점 합산(Kahan Sum)을 사용해 평균을 계산해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | favg(A) |

first(arg)

| 설명 | arg의 첫 번째 값(null 또는 non-null)을 반환해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | first(A) | | 별칭 | arbitrary(A) |

fsum(arg)

| 설명 | 더 정확한 부동소수점 합산(Kahan Sum)을 사용해 합을 계산해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | fsum(A) | | 별칭 | sumkahan, kahan_sum |

geometric_mean(arg)

| 설명 | arg의 모든 non-null 값의 기하 평균을 계산해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | geometric_mean(A) | | 별칭 | geomean(A) |

histogram(arg)

| 설명 | 버킷과 개수를 나타내는 키-값 쌍의 MAP를 반환해요. | | 예제 | histogram(A) |

histogram(arg, boundaries)

| 설명 | 제공된 상한 boundaries와 데이터 타입의 해당 bin(왼쪽 열기, 오른쪽 닫기 파티션)에 있는 요소 개수를 나타내는 키-값 쌍의 MAP를 반환해요. 제공된 모든 boundaries보다 큰 요소가 나타나면 데이터 타입의 최대값 경계가 자동으로 추가돼요. is_histogram_other_bin 참고. 경계는 예를 들어 equi_width_bins로 제공할 수 있어요. | | 예제 | histogram(A, [0, 1, 10]) |

histogram_exact(arg, elements)

| 설명 | 요청된 요소와 그 개수를 나타내는 키-값 쌍의 MAP를 반환해요. 다른 요소가 나타나면 데이터 타입 특정의 catch-all 요소가 자동으로 추가돼요. is_histogram_other_bin 참고. | | 예제 | histogram_exact(A, ['a', 'b', 'c']) |

histogram_values(source, col_name, technique, bin_count)

| 설명 | bin의 상한 경계와 개수를 반환해요. | | 예제 | histogram_values(integers, i, bin_count := 2) |

last(arg)

| 설명 | 컬럼의 마지막 값을 반환해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | last(A) |

list(arg)

| 설명 | 컬럼의 모든 값을 포함하는 LIST를 반환해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | list(A) | | 별칭 | array_agg |

max(arg)

| 설명 | arg에 있는 최대값을 반환해요. 이 함수는 distinctness의 영향을 받지 않아요. | | 예제 | max(A) |

max(arg, n)

| 설명 | arg 내림차순으로 정렬된 "상위" n 행의 arg 값을 포함하는 LIST를 반환해요. | | 예제 | max(A, 2) |

min(arg)

| 설명 | arg에 있는 최소값을 반환해요. 이 함수는 distinctness의 영향을 받지 않아요. | | 예제 | min(A) |

min(arg, n)

| 설명 | arg 오름차순으로 정렬된 "하위" n 행의 arg 값을 포함하는 LIST를 반환해요. | | 예제 | min(A, 2) |

product(arg)

| 설명 | arg의 모든 non-null 값의 곱을 계산해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | product(A) |

string_agg(arg)

| 설명 | 컬럼 문자열 값을 쉼표 구분자(,)로 연결해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | string_agg(S, ',') | | 별칭 | group_concat(arg), listagg(arg) |

string_agg(arg, sep)

| 설명 | 컬럼 문자열 값을 구분자로 연결해요. 이 함수는 정렬의 영향을 받아요. | | 예제 | string_agg(S, ',') | | 별칭 | group_concat(arg, sep), listagg(arg, sep) |

sum(arg)

| 설명 | arg의 모든 non-null 값의 합을 계산해요 / arg가 boolean이면 true 값을 셉니다. 이 함수의 부동소수점 버전은 정렬의 영향을 받아요. | | 예제 | sum(A) |

weighted_avg(arg, weight)

| 설명 | 각 값이 해당 weight로 조정되는 arg의 모든 non-null 값의 가중 평균을 계산해요. weightNULL이면 해당 값은 건너뜁니다. 이 함수는 정렬의 영향을 받아요. | | 예제 | weighted_avg(A, W) | | 별칭 | wavg(arg, weight) |

근사 집계 함수

아래 표는 사용 가능한 근사 집계 함수를 보여줘요.

함수 설명 예제
approx_count_distinct(x) HyperLogLog를 사용해 고유 요소의 근사 개수를 계산해요. approx_count_distinct(A)
approx_quantile(x, pos) T-Digest를 사용해 근사 quantile을 계산해요. approx_quantile(A, 0.5)
approx_top_k(arg, k) Filtered Space-Saving을 사용해 arg의 근사적으로 가장 빈번한 k 값의 LIST를 계산해요.
reservoir_quantile(x, quantile, sample_size = 8192) 레저버 샘플링을 사용해 근사 quantile을 계산해요. 샘플 크기는 선택 사항이며 기본값은 8192예요. reservoir_quantile(A, 0.5, 1024)

통계 집계 함수

아래 표는 사용 가능한 통계 집계 함수를 보여줘요. 이들은 모두 NULL 값(단일 입력 컬럼 x의 경우) 또는 두 입력 컬럼(yx) 중 하나라도 NULL인 쌍을 무시해요.

함수 설명
corr(y, x) 상관 계수.
covar_pop(y, x) 모집단 공분산. 편향 보정을 포함하지 않아요.
covar_samp(y, x) 표본 공분산. Bessel의 편향 보정을 포함해요.
entropy(x) 개수 입력 값의 log-2 엔트로피.
kurtosis_pop(x) 편향 보정이 없는 과잉 첨도 (Fisher의 정의).
kurtosis(x) 표본 크기에 따른 편향 보정이 있는 과잉 첨도 (Fisher의 정의).
mad(x) 중앙 절대 편차. 시간 타입은 양수 INTERVAL을 반환해요.
median(x) 집합의 중간 값. 짝수 개수 값의 경우 수량 값은 평균되고 서수 값은 낮은 값을 반환해요.
mode(x) 가장 빈번한 값. 이 함수는 정렬의 영향을 받아요.
quantile_cont(x, pos) 0 <= pos <= 1에 대한 x의 보간된 pos-quantile. pos * (n_nonnull_values - 1)번째(0-인덱스, 지정된 순서) x 값을 반환하거나, 인덱스가 정수가 아니면 인접 값 사이의 보간을 반환해요. posFLOATLIST이면 결과는 해당 보간 quantile의 LIST예요. Hyndman & Fan (1996)의 Type 7.
quantile(x, pos) quantile_disc의 별칭.
quantile_disc(x, pos) 0 <= pos <= 1에 대한 x의 이산 pos-quantile. greatest(ceil(pos * n_nonnull_values) - 1, 0)번째(0-인덱스, 지정된 순서) x 값을 반환해요. Hyndman & Fan (1996)의 Type 1.
regr_avgx(y, x) non-NULL 쌍에 대한 독립 변수의 평균. x는 독립 변수, y는 종속 변수.
regr_avgy(y, x) non-NULL 쌍에 대한 종속 변수의 평균. x는 독립 변수, y는 종속 변수.
regr_count(y, x) non-NULL 쌍의 수.
regr_intercept(y, x) 단변량 선형 회귀선의 절편. x는 독립 변수, y는 종속 변수.
regr_r2(y, x) y와 x 사이의 제곱 Pearson 상관 계수. 또한: 선형 회귀에서의 결정 계수.
regr_slope(y, x) 선형 회귀선의 기울기. x는 독립 변수, y는 종속 변수.
regr_sxx(y, x) non-NULL 쌍에 대한 독립 변수의 표본 분산. Bessel의 편향 보정 포함.
regr_sxy(y, x) 표본 공분산. Bessel의 편향 보정 포함.
regr_syy(y, x) non-NULL 쌍에 대한 종속 변수의 표본 분산. Bessel의 편향 보정 포함.
skewness(x) 왜도.
sem(x) 평균의 표준 오차.
stddev_pop(x) 모집단 표준 편차.
stddev_samp(x) 표본 표준 편차.
var_pop(x) 모집단 분산. 편향 보정을 포함하지 않아요.
var_samp(x) 표본 분산. Bessel의 편향 보정 포함.
corr(y, x)

| 설명 | 상관 계수. | | 공식 | covar_pop(y, x) / (stddev_pop(x) * stddev_pop(y)) |

covar_pop(y, x)

| 설명 | 모집단 공분산. 편향 보정을 포함하지 않아요. | | 공식 | (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / regr_count(y, x), covar_samp(y, x) * (1 - 1 / regr_count(y, x)) |

covar_samp(y, x)

| 설명 | 표본 공분산. Bessel의 편향 보정을 포함해요. | | 공식 | (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / (regr_count(y, x) - 1), covar_pop(y, x) / (1 - 1 / regr_count(y, x)) | | 별칭 | regr_sxy(y, x) |

entropy(x)

| 설명 | 개수 입력 값의 log-2 엔트로피. | | 공식 | - |

kurtosis_pop(x)

| 설명 | 편향 보정이 없는 과잉 첨도 (Fisher의 정의). | | 공식 | - |

kurtosis(x)

| 설명 | 표본 크기에 따른 편향 보정이 있는 과잉 첨도 (Fisher의 정의). | | 공식 | - |

mad(x)

| 설명 | 중앙 절대 편차. 시간 타입은 양수 INTERVAL을 반환해요. | | 공식 | median(abs(x - median(x))) |

median(x)

| 설명 | 집합의 중간 값. 짝수 개수 값의 경우 수량 값은 평균되고 서수 값은 낮은 값을 반환해요. | | 공식 | quantile_cont(x, 0.5) |

mode(x)

| 설명 | 가장 빈번한 값. 이 함수는 정렬의 영향을 받아요. | | 공식 | - |

quantile_cont(x, pos)

| 설명 | 0 <= pos <= 1에 대한 x의 보간된 pos-quantile. pos * (n_nonnull_values - 1)번째(0-인덱스, 지정된 순서) x 값을 반환하거나, 인덱스가 정수가 아니면 인접 값 사이의 보간을 반환해요. posFLOATLIST이면 결과는 해당 보간 quantile의 LIST예요. Hyndman & Fan (1996)의 Type 7. | | 공식 | - |

quantile(x, pos)

| 설명 | quantile_disc의 별칭. |

quantile_disc(x, pos)

| 설명 | 0 <= pos <= 1에 대한 x의 이산 pos-quantile. greatest(ceil(pos * n_nonnull_values) - 1, 0)번째(0-인덱스, 지정된 순서) x 값을 반환해요. Hyndman & Fan (1996)의 Type 1. posFLOATLIST이면 결과는 해당 이산 quantile의 LIST예요. | | 공식 | - | | 별칭 | quantile |

regr_avgx(y, x)

| 설명 | non-NULL 쌍에 대한 독립 변수의 평균. x는 독립 변수, y는 종속 변수. | | 공식 | - |

regr_avgy(y, x)

| 설명 | non-NULL 쌍에 대한 종속 변수의 평균. x는 독립 변수, y는 종속 변수. | | 공식 | - |

regr_count(y, x)

| 설명 | non-NULL 쌍의 수. | | 공식 | - |

regr_intercept(y, x)

| 설명 | 단변량 선형 회귀선의 절편. x는 독립 변수, y는 종속 변수. | | 공식 | regr_avgy(y, x) - regr_slope(y, x) * regr_avgx(y, x) |

regr_r2(y, x)

| 설명 | y와 x 사이의 제곱 Pearson 상관 계수. 또한: 선형 회귀에서의 결정 계수. | | 공식 | - |

regr_slope(y, x)

| 설명 | 선형 회귀선의 기울기를 반환해요. x는 독립 변수, y는 종속 변수. | | 공식 | regr_sxy(y, x) / regr_sxx(y, x) |

regr_sxx(y, x)

| 설명 | non-NULL 쌍에 대한 독립 변수의 표본 분산. Bessel의 편향 보정 포함. | | 공식 | - |

regr_sxy(y, x)

| 설명 | 표본 공분산. Bessel의 편향 보정 포함. | | 공식 | (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / (regr_count(y, x) - 1), covar_pop(y, x) / (1 - 1 / regr_count(y, x)) | | 별칭 | covar_samp(y, x) |

regr_syy(y, x)

| 설명 | non-NULL 쌍에 대한 종속 변수의 표본 분산. Bessel의 편향 보정 포함. | | 공식 | - |

sem(x)

| 설명 | 평균의 표준 오차. | | 공식 | - |

skewness(x)

| 설명 | 왜도. | | 공식 | - |

stddev_pop(x)

| 설명 | 모집단 표준 편차. | | 공식 | sqrt(var_pop(x)) |

stddev_samp(x)

| 설명 | 표본 표준 편차. | | 공식 | sqrt(var_samp(x)) | | 별칭 | stddev(x) |

var_pop(x)

| 설명 | 모집단 분산. 편향 보정을 포함하지 않아요. | | 공식 | (sum(x^2) - sum(x)^2 / count(x)) / count(x), var_samp(y, x) * (1 - 1 / count(x)) |

var_samp(x)

| 설명 | 표본 분산. Bessel의 편향 보정 포함. | | 공식 | (sum(x^2) - sum(x)^2 / count(x)) / (count(x) - 1), var_pop(y, x) / (1 - 1 / count(x)) | | 별칭 | variance(arg, val) |

정렬된 집합 집계 함수

아래 표는 사용 가능한 "ordered set" 집계 함수를 보여줘요. 이 함수들은 WITHIN GROUP (ORDER BY sort_expression) 문법으로 지정되며, 정렬 표현식을 첫 번째 인자로 받는 동등한 집계 함수로 변환돼요.

함수 동등 표현
mode() WITHIN GROUP (ORDER BY column [(ASC|DESC)]) mode(column ORDER BY column [(ASC|DESC)])
percentile_cont(fraction) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_cont(column, fraction ORDER BY column [(ASC|DESC)])
percentile_cont(fractions) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_cont(column, fractions ORDER BY column [(ASC|DESC)])
percentile_disc(fraction) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_disc(column, fraction ORDER BY column [(ASC|DESC)])
percentile_disc(fractions) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_disc(column, fractions ORDER BY column [(ASC|DESC)])

기타 집계 함수

함수 설명 별칭
grouping() GROUP BY가 있고 ROLLUP 또는 GROUPING SETS가 있는 쿼리: 현재 super-aggregate 행을 만들기 위해 그룹화에 사용된 인자 표현식을 식별하는 정수를 반환해요. grouping_id()

더 알아보기 (Learn more)

  • FILTER 절 문서에서 조건부 집계를 확인해요.
  • GROUP BY 문서에서 그룹화를 살펴볼 수 있어요.