집계 함수
ClickHouse는 표준 SQL 집계 함수(sum, avg, min, max, count)뿐만 아니라 다양한 기타 집계 함수도 지원합니다.
| 페이지 | 설명 |
|---|---|
| aggThrow | 예외 안전성을 테스트하는 데 사용할 수 있는 함수입니다. 지정된 확률에 따라 집계 과정에서 예외를 발생시킵니다. |
| analysisOfVariance | 일원 분산 분석(ANOVA 테스트)을 위한 통계적 검정을 제공합니다. 정규 분포를 따르는 여러 집단에 대해 각 집단의 평균이 모두 동일한지 여부를 검정합니다. |
| any | 컬럼에서 처음 나타나는 값을 선택합니다. |
| anyHeavy | heavy hitter 알고리즘을 사용하여 자주 발생하는 값을 선택합니다. 각 쿼리 실행 스레드에서 절반 이상 발생하는 값이 있을 경우 해당 값을 반환합니다. 일반적으로 결과는 비결정적입니다. |
| anyLast | 컬럼에서 마지막으로 나타나는 값을 선택합니다. |
| approx_top_k | 지정된 컬럼에서 가장 자주 나타나는 값과 그 개수를 근사적으로 추정하여 배열로 반환합니다. |
| approx_top_sum | 지정된 컬럼에서 값들의 합을 기준으로 상위 항목과 그 합계를 근사적으로 추정하여 배열로 반환합니다. |
| argAndMax | 최대 val 값을 가지는 arg와 val을 계산합니다. 최대값인 val이 동일한 행이 여러 개 있는 경우, 어느 arg와 val 쌍이 반환될지는 정해져 있지 않습니다. |
| argAndMin | 최소 val 값에 대한 arg 및 val 값을 계산합니다. 동일한 최소 val 값을 가진 행이 여러 개 있는 경우, 어느 arg 및 val 값이 반환될지는 결정적이지 않습니다. |
| argMax | 최댓값인 val에 해당하는 arg 값을 계산합니다. |
| argMin | 최소 val 값에 대한 arg 값을 계산합니다. 동일한 최대 val 값을 가진 행이 여러 개인 경우, 어떤 행에 해당하는 arg가 반환될지는 비결정적입니다. |
| avg | 산술 평균을 계산합니다. |
| avgWeighted | 가중 산술 평균을 계산합니다. |
| boundingRatio | 값 집합에서 가장 왼쪽 지점과 가장 오른쪽 지점 사이의 기울기를 계산하는 집계 함수입니다. |
| categoricalInformationValue | 각 카테고리에 대해 (P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0))) 값을 계산합니다. |
| contingency | contingency 함수는 분할 계수(contingency coefficient)를 계산하며, 이는 테이블의 두 컬럼 간 연관성을 측정하는 값입니다. 계산 방식은 cramersV 함수와 유사하지만, 제곱근의 분모가 다릅니다. |
| corr | 피어슨 상관 계수를 계산합니다. |
| corrMatrix | N개의 변수에 대한 상관 행렬을 계산합니다. |
| corrStable | 피어슨 상관 계수를 계산하되, 수치적으로 더 안정적인 알고리즘을 사용합니다. |
| count | 행의 개수 또는 NULL이 아닌 값의 개수를 계산합니다. |
| covarPop | 모집단 공분산을 계산합니다. |
| covarPopMatrix | N개의 변수에 대한 모집단 공분산 행렬을 반환합니다. |
| covarPopStable | 모집단 공분산을 계산합니다. |
| covarSamp | Σ((x - x̅)(y - y̅)) / (n - 1) 식의 값을 계산합니다 |
| covarSampMatrix | N개의 변수에 대한 표본 공분산 행렬을 반환합니다. |
| covarSampStable | covarSamp와 유사하지만 연산 속도는 더 느린 대신 계산 오차가 더 작습니다. |
| cramersV | cramersV FUNCTION의 결과는 0(변수들 사이에 연관성이 전혀 없음을 의미)에서 1까지의 범위를 가지며, 각 변수의 값이 다른 변수에 의해 완전히 결정될 때에만 1에 도달합니다. 두 변수 간 연관성을 이론적으로 가능한 최대 변동 폭 대비 백분율로 나타낸 값으로 볼 수 있습니다. |
| cramersVBiasCorrected | Cramer의 V를 계산하되, 편향 보정을 적용합니다. |
| deltaSum | 연속된 행 사이의 산술적 차이의 합을 계산합니다. |
| deltaSumTimestamp | 연속된 행 사이의 차이를 합산합니다. 차이가 음수인 경우에는 무시합니다. |
| distinctDynamicTypes | Dynamic 컬럼에 저장된 서로 다른 데이터 타입 목록을 반환합니다. |
| distinctJSONPaths | JSON 컬럼에 저장된 서로 다른 경로 목록을 반환합니다. |
| distinctJSONPathsAndTypes | JSON에 저장된 서로 다른 경로와 해당 타입 목록을 반환합니다. |
| entropy | 값 컬럼에 대한 Shannon 엔트로피를 계산합니다. |
| estimateCompressionRatio | 주어진 컬럼을 실제로 압축하지 않고 압축 비율을 추정합니다. |
| exponentialMovingAverage | 지정된 시간 구간에 대해 값의 지수 이동 평균을 계산합니다. |
| exponentialTimeDecayedAvg | 시계열 값의 시점 t에서의 지수 평활 가중 이동 평균을 반환합니다. |
| exponentialTimeDecayedCount | 시계열의 시간 인덱스 t에서의 누적 지수 감쇠 값을 반환합니다. |
| exponentialTimeDecayedMax | 시계열에서 시간 인덱스 t에서 계산된 지수 평활 이동 평균과 t-1에서의 값 가운데 더 큰 값을 반환합니다. |
| exponentialTimeDecayedSum | 시계열에서 시간 인덱스 t에서의 지수 평활화된 이동 평균 값들의 합을 반환합니다. |
| first_value | any의 별칭으로, Window Functions와의 호환성을 위해 도입되었습니다. Window Functions에서는 경우에 따라 NULL 값을 처리해야 할 수 있는데, 기본적으로 모든 ClickHouse 집계 함수는 NULL 값을 무시합니다. |
| flameGraph | 스택 트레이스 목록을 사용하여 flamegraph를 생성하는 집계 함수입니다. |
| groupArray | 인자 값들로 배열을 생성합니다. 값들은 어떤(비결정적인) 순서로든 배열에 추가될 수 있습니다. |
| groupArrayArray | 여러 배열을 하나의 더 큰 배열로 집계합니다. |
| groupArrayInsertAt | 지정한 위치에 값을 배열에 삽입합니다. |
| groupArrayIntersect | 주어진 배열들의 교집합(모든 배열에 공통으로 존재하는 항목들)을 반환합니다. |
| groupArrayLast | 마지막 인수 값으로 구성된 배열을 반환합니다. |
| groupArrayMovingAvg | 입력 값들의 이동 평균을 계산합니다. |
| groupArrayMovingSum | 입력 값들의 이동 합계를 계산합니다. |
| groupArraySample | 샘플 인수 값들로 구성된 배열을 생성합니다. 결과 배열의 크기는 최대 max_size개의 요소로 제한됩니다. 인수 값들은 무작위로 선택되어 배열에 추가됩니다. |
| groupArraySorted | 처음 N개 항목을 오름차순으로 정렬한 배열을 반환합니다. |
| groupBitAnd | 숫자들의 집합에 비트 단위 AND 연산을 적용합니다. |
| groupBitmap | 부호 없는 정수 컬럼에 대해 Bitmap 집계를 수행하고 UInt64 타입의 카디널리티를 반환합니다. 접미사 -State를 사용하면 비트맵 객체를 반환합니다. |
| groupBitmapAnd | 비트맵 컬럼에 대한 AND 연산을 수행하고 UInt64 타입의 카디널리티를 반환합니다. 접미사 -State를 사용하면 비트맵 객체를 반환합니다. |
| groupBitmapOr | bitmap 컬럼에 대해 OR 연산을 수행하고 UInt64 타입의 기수(cardinality)를 반환합니다. -State 접미사를 추가하면 bitmap 객체를 반환합니다. groupBitmapMerge와 동일하게 동작합니다. |
| groupBitmapXor | 비트맵 컬럼에 대한 XOR 연산을 수행하고 UInt64 타입의 카디널리티를 반환합니다. 접미사 -State를 사용하면 비트맵 객체를 반환합니다. |
| groupBitOr | 일련의 숫자에 대해 비트 단위 OR 연산을 수행합니다. |
| groupBitXor | 일련의 숫자에 비트 단위 XOR를 적용합니다. |
| groupConcat | 문자열 그룹에 대해 연결된(concatenated) 문자열을 계산합니다. 선택적으로 구분 기호를 지정하거나 최대 요소 개수를 제한할 수 있습니다. |
| groupUniqArray | 중복을 제거한 서로 다른 인수 값들로 배열을 생성합니다. |
| intervalLengthSum | 모든 구간의 합집합에 대한 전체 길이(실수선 상의 구간)를 계산합니다. |
| kolmogorovSmirnovTest | Kolmogorov-Smirnov 검정을 두 모집단에서 추출한 표본에 적용합니다. |
| kurtPop | 수열의 첨도를 계산합니다. |
| kurtSamp | 수열의 표본 첨도를 계산합니다. |
| largestTriangleThreeBuckets | 입력 데이터에 Largest-Triangle-Three-Buckets 알고리즘을 적용합니다. |
| last_value | 마지막으로 나타난 값을 선택하며, anyLast와 유사하지만 NULL 값도 허용합니다. |
| mannWhitneyUTest | Mann-Whitney 순위 검정을 두 모집단에서 추출한 표본에 적용합니다. |
| max | 값 그룹 전체의 최댓값을 계산하는 집계 함수입니다. |
| maxIntersections | 주어진 구간 집합에서, 서로 교차하는 구간 수의 최대값(모든 구간이 최소 한 번 이상 교차하도록 하는 경우)을 계산하는 집계 함수입니다. |
| maxIntersectionsPosition | maxIntersections 함수에서 얻어지는 결과 값이 나타나는 위치를 계산하는 집계 함수입니다. |
| maxMap | key 배열에 지정된 키에 따라 value 배열의 최댓값을 계산합니다. |
| meanZTest | 두 모집단으로부터 추출한 표본에 평균 z-검정을 적용합니다. |
| median | median* FUNCTION은 대응하는 quantile* FUNCTION의 별칭(alias)입니다. 숫자형 데이터 샘플의 중앙값을 계산합니다. |
| min | 값 집합 전체에 대해 최솟값을 계산하는 집계 함수입니다. |
| minMap | key 배열에 지정된 키별로 value 배열에서 최소값을 계산합니다. |
| quantile | 수치형 데이터 시퀀스에 대한 근사 분위수를 계산합니다. |
| quantileBFloat16 | bfloat16 숫자로 구성된 표본에 대한 근사 분위수를 계산합니다. |
| quantileDD | 상대 오차를 보장하는 표본에 대한 근사 분위수를 계산합니다. |
| quantileDeterministic | 수치형 데이터 시퀀스에 대한 근사 분위수를 계산합니다. |
| quantileExact 계열 함수 | quantileExact, quantileExactLow, quantileExactHigh, quantileExactExclusive, quantileExactInclusive 함수입니다. |
| quantileExactExclusive | 수치형 데이터 시퀀스의 분위수를 정확하게 계산합니다. |
| quantileExactHigh | quantileExact와 유사하게 수치형 데이터 시퀀스의 정확한 분위수를 계산합니다. |
| quantileExactInclusive | 수치형 데이터 시퀀스의 분위수를 정확하게 계산합니다. |
| quantileExactLow | quantileExact와 유사하게 숫자 데이터 시퀀스의 정확한 분위수를 계산합니다. |
| quantileExactWeighted | 각 요소의 가중치를 고려하여 수치형 데이터 시퀀스의 분위수를 정확하게 계산합니다. |
| quantileExactWeightedInterpolated | 각 요소의 가중치를 고려하여 선형 보간을 사용해 수치형 데이터 시퀀스의 분위수를 계산합니다. |
| quantileGK | Greenwald-Khanna 알고리즘을 사용해 수치형 데이터 시퀀스의 분위수를 계산합니다. |
| quantileInterpolatedWeighted | 각 요소의 가중치를 고려하여 선형 보간을 사용해 수치형 데이터 시퀀스의 분위수를 계산합니다. |
| quantilePrometheusHistogram | 선형 보간을 사용해 히스토그램의 분위수를 계산합니다. |
| quantiles 함수 | quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK입니다. |
| quantilesExactExclusive | 수치 데이터 시퀀스의 분위수를 정확하게 계산합니다. |
| quantilesExactInclusive | 수치 데이터 시퀀스의 분위수를 정확하게 계산합니다. |
| quantilesGK | quantilesGK는 quantileGK와 유사하게 동작하지만, 여러 분위수 수준에서 분위수를 동시에 계산할 수 있으며 배열을 반환합니다. |
| quantilesTimingWeighted | 지정된 정밀도로 수치 데이터 시퀀스에서 각 요소의 가중치에 따라 분위수를 계산합니다. |
| quantileTDigest | t-digest 알고리즘을 사용하여 수치 데이터 시퀀스의 근사 분위수를 계산합니다. |
| quantileTDigestWeighted | t-digest 알고리즘을 사용하여 수치 데이터 시퀀스의 근사 분위수를 계산합니다. |
| quantileTiming | 지정된 정밀도로 수치 데이터 시퀀스의 분위수를 계산합니다. |
| quantileTimingWeighted | 지정된 정밀도로 수치 데이터 시퀀스에서 각 요소의 가중치에 따라 분위수를 계산합니다. |
| rankCorr | 순위 상관 계수를 계산합니다. |
| simpleLinearRegression | 단순(1차원) 선형 회귀를 수행합니다. |
| singleValueOrNull | 집계 함수 singleValueOrNull은 x = ALL (SELECT ...)와 같은 서브쿼리 연산자를 구현하는 데 사용됩니다. 데이터에 NULL이 아닌 서로 다른 값이 정확히 하나만 존재하는지 확인합니다. |
| skewPop | 시퀀스의 왜도(skewness)를 계산합니다. |
| skewSamp | 시퀀스의 표본 왜도(sample skewness)를 계산합니다. |
| sparkbar | 이 FUNCTION은 구간 [min_x, max_x]에서 값 x와 이 값들의 반복 빈도 y에 대한 히스토그램을 그립니다. |
| stddevPop | 결과는 varPop의 제곱근과 같습니다. |
| stddevPopStable | 결과는 varPop의 제곱근과 같습니다. stddevPop과 달리, 이 함수는 수치적으로 안정적인 알고리즘을 사용합니다. |
| stddevSamp | 결과는 varSamp의 제곱근과 같습니다. |
| stddevSampStable | 결과는 varSamp의 제곱근과 같습니다. 이 함수는 수치적으로 안정적인 알고리즘을 사용합니다. |
| stochasticLinearRegression | 이 함수는 확률적(스토캐스틱) 선형 회귀를 구현합니다. 학습률, L2 정규화 계수, 미니배치 크기에 대한 사용자 지정 매개변수를 지원하며, 가중치를 업데이트하기 위한 여러 방법(Adam, 단순 SGD, Momentum, Nesterov)을 제공합니다. |
| stochasticLogisticRegression | 이 함수는 확률적(스토캐스틱) 로지스틱 회귀를 구현합니다. 이항 분류 문제에 사용할 수 있으며, stochasticLinearRegression과 동일한 사용자 지정 매개변수를 지원하고 동일한 방식으로 동작합니다. |
| studentTTest | 두 모집단에서 추출한 표본에 Student t-검정을 적용합니다. |
| studentTTestOneSample | 단일 표본과 알려진 모평균에 단일 표본 Student t-검정을 적용합니다. |
| sum | 합계를 계산합니다. 숫자형 값에만 동작합니다. |
| sumCount | 숫자의 합과 행 수를 동시에 계산합니다. 이 함수는 ClickHouse 쿼리 옵티마이저에서 사용됩니다. 쿼리에 여러 개의 sum, count, avg 함수가 있는 경우, 계산을 재사용하기 위해 이를 하나의 sumCount 함수로 대체할 수 있습니다. 이 함수를 명시적으로 호출해야 할 일은 거의 없습니다. |
| sumKahan | Kahan 보정 합산 알고리즘을 사용하여 숫자 합계를 계산합니다. |
| sumMap | key 배열에 지정된 키에 따라 하나 이상의 value 배열을 합산합니다. 정렬된 순서의 키 배열과 각 키에 대해 오버플로 없이 합산된 값 배열들로 구성된 배열의 튜플을 반환합니다. |
| sumMapWithOverflow | key 배열에 지정된 키에 따라 value 배열의 합을 계산합니다. 정렬된 순서의 키 배열과 해당 키에 대해 합산된 값 배열, 이렇게 두 개의 배열로 이루어진 튜플을 반환합니다. 오버플로가 발생하도록 허용하면서 합산을 수행한다는 점에서 sumMap 함수와 다릅니다. |
| sumWithOverflow | 결과에 입력 파라미터와 동일한 데이터 타입을 사용하여 숫자 합계를 계산합니다. 합계가 해당 데이터 타입의 최대값을 초과하면 오버플로를 허용하여 계산합니다. |
| theilsU | theilsU 함수는 Theils' U 불확실성 계수를 계산하는 함수로, 테이블의 두 컬럼 간 연관성을 측정하는 값입니다. |
| timeSeriesChangesToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 변화량을 계산하는 집계 함수입니다. |
| timeSeriesDeltaToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 delta를 계산하는 집계 함수입니다. |
| timeSeriesDerivToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 도함수(derivative)를 계산하는 집계 함수입니다. |
| timeSeriesGroupArray | 타임스탬프를 기준으로 시계열을 오름차순으로 정렬합니다. |
| timeSeriesInstantDeltaToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 idelta를 계산하는 집계 함수입니다. |
| timeSeriesInstantRateToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 irate를 계산하는 집계 함수입니다. |
| timeSeriesLastTwoSamples | 시계열 데이터를 PromQL과 유사한 방식으로 irate 및 idelta를 계산할 수 있도록 재샘플링하는 집계 함수입니다. |
| timeSeriesPredictLinearToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 선형 예측을 계산하는 집계 함수입니다. |
| timeSeriesRateToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 rate를 계산하는 집계 함수입니다. |
| timeSeriesResampleToGridWithStaleness | 시계열 데이터를 지정된 그리드에 맞추어 재샘플링하는 집계 함수입니다. |
| timeSeriesResetsToGrid | 지정된 그리드에서 시계열 데이터에 대해 PromQL과 유사한 방식으로 resets를 계산하는 집계 함수입니다. |
| topK | 지정된 컬럼에서 대략적으로 가장 자주 나타나는 값들의 배열을 반환합니다. 결과 배열은 값 자체가 아니라 값의 대략적인 출현 빈도를 기준으로 내림차순 정렬됩니다. |
| topKWeighted | 지정된 컬럼에서 가장 자주 나타나는 값들을 근사적으로 추출하여 배열로 반환합니다. 반환된 배열은 값 자체가 아니라 값의 근사 빈도를 기준으로 내림차순 정렬됩니다. 각 값의 가중치도 함께 고려합니다. |
| uniq | 인수의 서로 다른 값 개수를 근사적으로 계산합니다. |
| uniqCombined | 인수의 서로 다른 값 개수를 근사적으로 계산합니다. |
| uniqCombined64 | 인수의 서로 다른 값 개수를 근사적으로 계산합니다. uniqCombined와 동일하지만, String 데이터 타입에만 64비트 해시를 사용하는 것이 아니라 모든 데이터 타입에 대해 64비트 해시를 사용합니다. |
| uniqExact | 인수의 서로 다른 값 개수를 정확하게 계산합니다. |
| uniqHLL12 | HyperLogLog 알고리즘을 사용하여 인수의 서로 다른 값 개수를 근사적으로 계산합니다. |
| uniqTheta | Theta Sketch 프레임워크를 사용하여 인수의 서로 다른 값 개수를 근사적으로 계산합니다. |
| varPop | 모집단 분산을 계산합니다. |
| varPopStable | 모집단 분산을 반환합니다. varPop과 달리 수치적으로 더 안정적인 알고리즘을 사용합니다. 성능은 더 느리지만 계산 오차는 더 작습니다. |
| varSamp | 데이터셋의 표본 분산을 계산합니다. |
| varSampStable | 데이터 집합의 표본 분산을 계산합니다. varSamp과는 달리 이 함수는 수치적으로 안정적인 알고리즘을 사용합니다. 속도는 더 느리지만 계산 오차가 더 작습니다. |
| welchTTest | 두 모집단에서 추출된 표본에 Welch의 t-검정을 적용합니다. |