集約関数
ClickHouse は、標準的な SQL 集約関数(sum、avg、min、max、count)に加えて、さらに幅広い集約関数をサポートしています。
| ページ | 説明 |
|---|---|
| aggThrow | この関数は例外安全性をテストするために使用できます。指定した確率で、生成時に例外を送出します。 |
| analysisOfVariance | 一元配置分散分析(ANOVA)のための統計的検定です。正規分布に従う複数のグループの観測値について、すべてのグループの平均が等しいかどうかを検定します。 |
| any | カラム内で最初に出現した値を返します。 |
| anyHeavy | heavy hitters アルゴリズムを使用して頻出する値を選択します。各クエリ実行スレッドにおいて、全体の半分を超えて出現する値がある場合、その値が返されます。通常、結果は非決定的です。 |
| anyLast | カラム内で最後に出現した値を返します。 |
| approx_top_k | 指定されたカラム内で、おおよそ最も頻繁に現れる値とその出現回数からなる配列を返します。 |
| approx_top_sum | 指定されたカラムにおける、おおよそ最頻出の値とその出現回数の配列を返します。 |
| argMax | 最大の val 値に対応する arg 値を計算します。 |
| argMin | 最小の val 値に対応する arg の値を計算します。最大値となる同じ val を持つ行が複数ある場合、どの関連する arg が返されるかは保証されません。 |
| groupArrayArray | 複数の配列を集約し、それらを要素とする配列の配列を生成します。 |
| argAndMax | 最大の val 値に対する arg と val の値を計算します。最大となる同じ val 値を持つ行が複数存在する場合、どの行に対応する arg と val が返されるかは保証されません。 |
| argAndMin | 最小の val 値に対応する arg と val を計算します。最小となる同じ val 値を持つ行が複数ある場合、どの行に対応する arg と val が返されるかは非決定的です。 |
| avg | 算術平均を計算します。 |
| avgWeighted | 重み付き算術平均を計算します。 |
| boundingRatio | 値のグループにおいて、最も左端の点と最も右端の点を結ぶ直線の傾きを計算する集約関数。 |
| categoricalInformationValue | 各カテゴリごとに、(P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0))) の値を計算します。 |
| contingency | contingency 関数は、連関係数(contingency coefficient)を計算します。これは、テーブル内の 2 つのカラム間の関連性の強さを測定する指標です。計算方法は、平方根の分母が異なる点を除き、cramersV 関数と類似しています。 |
| corr | ピアソンの相関係数を計算します。 |
| corrMatrix | N 個の変数の相関行列を計算します。 |
| corrStable | 数値的に安定なアルゴリズムを用いてピアソンの相関係数を計算します。 |
| count | 行数、または NULL 以外の値の数をカウントします。 |
| covarPop | 母集団共分散を計算します |
| covarPopMatrix | N 個の変数に対する母集団共分散行列を返します。 |
| covarPopStable | 母集団共分散の値を計算します |
| covarSamp | Σ((x - x̅)(y - y̅)) / (n - 1) の値を計算します。 |
| covarSampMatrix | N 個の変数の標本共分散行列を返します。 |
| covarSampStable | covarSamp と同様に動作しますが、処理は遅くなる一方で、計算誤差をより小さく抑えられます。 |
| cramersV | cramersV 関数の結果は 0(変数間に関連性がないことに対応)から 1 の範囲を取り、各値が互いの値によって完全に決定される場合にのみ 1 になります。これは、2 つの変数間の関連の強さを、それらが取り得る最大限の変動に対する割合として表した指標とみなせます。 |
| cramersVBiasCorrected | バイアス補正を用いて Cramer's V を計算します。 |
| deltaSum | 連続する行同士の算術差を合計します。 |
| deltaSumTimestamp | 連続する行同士の差分を加算します。差分が負の値の場合は無視されます。 |
| 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 | スタックトレースのリストからフレームグラフを生成する集約関数です。 |
| groupArray | 引数の値の配列を作成します。配列への値の追加順序は未定義であり、順序は保証されません。 |
| groupArrayInsertAt | 配列の指定された位置に値を挿入します。 |
| groupArrayIntersect | 指定された配列の共通部分(すべての配列に共通して含まれる要素のみ)を返します。 |
| groupArrayLast | 最後の引数の値を要素とする配列を作成します。 |
| groupArrayMovingAvg | 入力値の移動平均を算出します。 |
| groupArrayMovingSum | 入力値の移動合計を算出します。 |
| groupArraySample | 引数値のサンプルからなる配列を作成します。結果の配列のサイズは max_size 要素を上限とします。引数値はランダムに選択され、配列に追加されます。 |
| timeSeriesGroupArray | 時系列データをタイムスタンプで昇順にソートします。 |
| groupArraySorted | 先頭の N 個の要素を昇順にソートした配列を返します。 |
| groupBitAnd | 一連の数値に対してビット単位の AND 演算を適用します。 |
| groupBitmap | 符号なし整数カラムからビットマップ計算または集約計算を行い、UInt64 型のカーディナリティを返します。サフィックスに -State を付けた場合は、ビットマップオブジェクトを返します。 |
| groupBitmapAnd | ビットマップカラム同士の AND 演算を行い、その結果のカーディナリティを UInt64 型で返します。サフィックス -State を付けた場合は、ビットマップオブジェクトを返します。 |
| groupBitmapOr | ビットマップカラム同士の OR を計算し、その結果の基数を UInt64 型で返します。サフィックスに -State を付けた場合は、ビットマップオブジェクトを返します。これは groupBitmapMerge と等価です。 |
| groupBitmapXor | ビットマップカラム同士の XOR を計算し、その結果の基数を UInt64 型で返します。サフィックスに -State を付けて使用した場合は、ビットマップオブジェクトを返します。 |
| groupBitOr | 一連の数値に対してビット単位の OR 演算を適用します。 |
| groupBitXor | 一連の数値に対してビット単位の XOR 演算を適用します。 |
| groupUniqArray | 引数の異なる値を要素とする配列を作成します。 |
| intervalLengthSum | すべての区間(数値軸上の線分)の和集合の全長を計算します。 |
| kolmogorovSmirnovTest | 2つの母集団からの標本に Kolmogorov-Smirnov 検定を適用します。 |
| kurtPop | シーケンスの尖度を算出します。 |
| kurtSamp | シーケンスの標本尖度を計算します。 |
| largestTriangleThreeBuckets | 入力データに Largest-Triangle-Three-Buckets アルゴリズムを適用します。 |
| last_value | anyLast と同様に、最後に出現した値を返しますが、NULL も許容します。 |
| mannWhitneyUTest | 2つの母集団からの標本に Mann-Whitney の順位検定を適用します。 |
| max | 値グループ内の最大値を計算する集約関数。 |
| maxIntersections | すべての区間が少なくとも 1 回は互いに交差している場合に、その区間群における区間同士の交差回数の最大値を計算する集約関数。 |
| maxIntersectionsPosition | maxIntersections が発生する位置を計算する集約関数。 |
| maxMap | key 配列で指定されたキーに基づいて、value 配列の最大値を計算します。 |
| meanZTest | 2つの母集団から得られた標本に対して母平均の z 検定を適用します。 |
| median | median* 関数は、対応する quantile* 関数のエイリアスです。数値データサンプルの中央値を計算します。 |
| min | 値のグループにおける最小値を計算する集約関数。 |
| minMap | key 配列で指定されたキーに従って、value 配列から最小値を求めます。 |
| quantile | 数値データ系列の近似分位数を計算します。 |
| quantileBFloat16 | bfloat16 型の値からなる標本の近似分位点を計算します。 |
| quantileDD | 標本の近似分位数を相対誤差の保証付きで計算します。 |
| quantileDeterministic | 数値データ系列の近似分位数を計算します。 |
| quantileExact 関数 | quantileExact、quantileExactLow、quantileExactHigh、quantileExactExclusive、quantileExactInclusive 関数 |
| quantileExactWeighted | 各要素の重みを考慮して、数値データ系列の分位数を厳密に計算します。 |
| quantileGK | Greenwald-Khanna アルゴリズムを使用して、数値データ系列の分位数を計算します。 |
| quantileExactWeightedInterpolated | 各要素の重みを考慮し、線形補間を用いて数値データ系列の分位数を計算します。 |
| quantileInterpolatedWeighted | 各要素の重みを考慮しつつ、線形補間により数値データ列の分位数を計算します。 |
| quantiles 関数 | quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK |
| quantileTDigest | t-digest アルゴリズムを使用して、数値データ系列の近似分位数を計算します。 |
| quantileTDigestWeighted | t-digest アルゴリズムを使用して、数値データ系列の近似分位数を計算します。 |
| quantileTiming | 指定された精度で数値データ列の分位数を計算します。 |
| quantileTimingWeighted | 指定された精度で各シーケンス要素の重みを考慮して数値データ列の分位数を計算します。 |
| rankCorr | 順位相関係数を計算します。 |
| simpleLinearRegression | 1 次元の単回帰を実行します。 |
| singleValueOrNull | 集約関数 singleValueOrNull は、x = ALL (SELECT ...) のようなサブクエリ演算子を実装するために使用されます。データ内に一意な非 NULL 値が 1 つだけ存在するかどうかを確認します。 |
| skewPop | シーケンスの歪度を計算します。 |
| skewSamp | シーケンスの標本歪度を計算します。 |
| sparkbar | この関数は、区間 [min_x, max_x] における値 x の出現頻度 y に基づく度数ヒストグラムをプロットします。 |
| stddevPop | 結果は varPop の平方根と等しくなります。 |
| stddevPopStable | 結果は varPop の平方根と同じです。stddevPop とは異なり、この関数は数値的に安定なアルゴリズムを用います。 |
| stddevSamp | 結果は varSamp の平方根と等しくなります |
| stddevSampStable | 結果は varSamp の平方根と同じです。stddevSamp とは異なり、この関数は数値的に安定なアルゴリズムを用います。 |
| stochasticLinearRegression | この関数は確率的線形回帰を実装します。学習率、L2 正則化係数、ミニバッチサイズなどのカスタムパラメータをサポートし、重み更新のための複数の手法(Adam、単純な SGD、Momentum、Nesterov)を備えています。 |
| stochasticLogisticRegression | この関数は確率的ロジスティック回帰を実装します。二値分類タスクに利用でき、stochasticLinearRegression と同じカスタマイズ可能なパラメータをサポートし、同様の方法で動作します。 |
| studentTTest | 2つの母集団からの標本にスチューデントの t 検定を適用します。 |
| sum | 合計を計算します。数値に対してのみ動作します。 |
| studentTTestOneSample | 標本に対して、既知の母平均を用いた 1 標本スチューデントの t 検定を適用します。 |
| sumCount | 数値の合計を計算すると同時に、行数をカウントします。この関数は ClickHouse のクエリオプティマイザによって使用されます。クエリ内に複数の sum、count、avg 関数がある場合、それらを単一の sumCount 関数に置き換えて計算結果を再利用できます。この関数を明示的に使用する必要が生じることはほとんどありません。 |
| sumKahan | Kahan の補償和アルゴリズムを使用して数値の合計を計算します |
| sumMap | key 配列で指定されたキーに従って、1 つ以上の value 配列を集計します。ソート済みのキー配列と、それぞれのキーに対応する値をオーバーフローなしで合計した配列から成るタプルを返します。 |
| sumMapWithOverflow | key 配列で指定されたキーに従って value 配列を合計します。戻り値は 2 つの配列から成るタプルであり、ソート済みのキー配列と、それぞれのキーに対応する値を合計した配列を返します。オーバーフローを許容して加算を行う点で、sumMap 関数と異なります。 |
| sumWithOverflow | 入力パラメータと同じデータ型を結果にも使用して数値の合計を計算します。合計がこのデータ型の最大値を超えた場合、オーバーフローを許容して計算されます。 |
| theilsU | theilsU 関数は、Theil の U 不確実性係数を計算します。これは、テーブル内の 2 つのカラム間の関連の強さを測定する値です。 |
| topK | 指定されたカラム内で、おおよそ最も頻繁に現れる値の配列を返します。結果の配列は、値そのものではなく、そのおおよその出現頻度に基づいて高い順にソートされます。 |
| topKWeighted | 指定されたカラム内で、おおよそ最も頻繁に現れる値の配列を返します。結果の配列は、値そのものではなく、そのおおよその出現頻度に基づいて高い順にソートされます。さらに、各値の重みも考慮されます。 |
| uniq | 引数が取りうる異なる値のおおよその個数を計算します。 |
| uniqCombined | 引数の異なる値のおおよその個数を計算します。 |
| uniqCombined64 | 引数に現れる異なる値のおおよその個数を計算します。uniqCombined と同じですが、String データ型だけでなく、すべてのデータ型に対して 64 ビットのハッシュを使用します。 |
| uniqExact | 引数に現れる異なる値の個数を正確に計算します。 |
| uniqHLL12 | HyperLogLog アルゴリズムを使用して、引数が取りうる異なる値のおおよその個数を計算します。 |
| uniqTheta | Theta Sketch Framework を使用して、引数が取りうる異なる値のおおよその個数を計算します。 |
| varPop | 母分散を計算します。 |
| varPopStable | 母分散を返します。varPop とは異なり、この関数は数値的に安定なアルゴリズムを使用します。処理は遅くなりますが、計算誤差は小さくなります。 |
| varSamp | データセットの標本分散を計算します。 |
| varSampStable | データセットの標本分散を計算します。varSamp とは異なり、この関数は数値的に安定なアルゴリズムを使用します。処理は遅くなりますが、計算誤差は小さくなります。 |
| welchTTest | 2つの母集団からの標本に対して Welch の t 検定を適用します。 |
| distinctDynamicTypes | Dynamic カラムに保存されているデータ型のうち、重複を除いた一覧を計算します。 |
| distinctJSONPaths | JSON カラムに格納されているパスのうち、一意なものの一覧を返します。 |
| timeSeriesDeltaToGrid | 指定されたグリッドに沿って時系列データに対して PromQL 風の delta を計算する集約関数。 |
| timeSeriesInstantDeltaToGrid | 指定されたグリッドに沿って、時系列データに対し PromQL 風の idelta を計算する集約関数。 |
| timeSeriesInstantRateToGrid | 指定されたグリッド上の時系列データに対して、PromQL 風の irate を計算する集約関数。 |
| timeSeriesLastTwoSamples | PromQL 風の irate および idelta の計算に用いる時系列データを再サンプリングする集約関数 |
| timeSeriesRateToGrid | 指定されたグリッド上の時系列データに対して、PromQL 風の rate を計算する集約関数。 |
| timeSeriesResampleToGridWithStaleness | 指定したグリッドに従って時系列データを再サンプリングする集約関数。 |
| timeSeriesDerivToGrid | 指定されたグリッドに沿って、時系列データに対し PromQL 風の微分を計算する集約関数。 |
| timeSeriesPredictLinearToGrid | 指定されたグリッド上の時系列データに対して、PromQL 風の線形予測を計算する集約関数。 |
| timeSeriesChangesToGrid | 指定されたグリッド上の時系列データに対して、PromQL 風の changes を計算する集約関数。 |
| timeSeriesResetsToGrid | 指定されたグリッド上の時系列データに対して、PromQL 風の reset 回数を計算する集約関数。 |
| groupConcat | 文字列のグループから連結済みの文字列を生成します。必要に応じて区切り文字を指定でき、連結する要素数の上限も設定できます。 |
| quantilePrometheusHistogram | 線形補間を用いてヒストグラムの分位数を計算します。 |