집계 함수
집계 함수 (Aggregate Functions)
집계 함수는 여러 행을 결합해 단일 값으로 만들어요. 스칼라 함수나 윈도우 함수와 달리 결과의 카디널리티를 바꾸기 때문에, SELECT와 HAVING 절에서만 사용할 수 있어요.
출처: 문서
본문
예제
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 쿼리의 SELECT와 HAVING 절에서만 사용할 수 있어요.
집계 함수의 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) |
arg가 NULL이 아닌 행 수를 반환해요. |
countif(arg) |
arg가 true인 행 수를 반환해요. |
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 값의 가중 평균을 계산해요. weight가 NULL이면 해당 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)
| 설명 | arg가 NULL이 아닌 행 수를 반환해요. |
| 예제 | count(A) |
countif(arg)
| 설명 | arg가 true인 행 수를 반환해요. |
| 예제 | 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 값의 가중 평균을 계산해요. weight가 NULL이면 해당 값은 건너뜁니다. 이 함수는 정렬의 영향을 받아요. |
| 예제 | 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의 경우) 또는 두 입력 컬럼(y와 x) 중 하나라도 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 값을 반환하거나, 인덱스가 정수가 아니면 인접 값 사이의 보간을 반환해요. pos가 FLOAT의 LIST이면 결과는 해당 보간 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 값을 반환하거나, 인덱스가 정수가 아니면 인접 값 사이의 보간을 반환해요. pos가 FLOAT의 LIST이면 결과는 해당 보간 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. pos가 FLOAT의 LIST이면 결과는 해당 이산 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() |