集約関数
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 が返されるかは未定義です。 |
| argAndMax | 最大の val 値に対応する arg と val の値を計算します。最大値となる val を持つ行が複数存在する場合、どの arg および val が返されるかは非決定的です。 |
| argAndMin | 最小の val 値に対する arg と val の値を計算します。最小となる同じ val を持つ行が複数ある場合、どの行に対応する arg と val が返されるかは保証されていません。 |
| groupArrayArray | 複数の配列をまとめて、それらを要素とする配列にします。 |
| 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 | Pearson の相関係数を、数値的に安定したアルゴリズムで計算します。 |
| 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 | 値からなるカラムのシャノンエントロピーを計算します。 |
| 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 個の要素に制限されます。引数値をランダムに選択して配列に追加します。 |
| groupArraySorted | 先頭N個の要素を昇順に並べた配列を返します。 |
| timeSeriesGroupArray | 時系列データをタイムスタンプで昇順に並べ替えます。 |
| groupBitAnd | 一連の数値に対してビット単位の AND を適用します。 |
| groupBitmap | 符号なし整数カラムに対してビットマップまたは集約計算を行うと、UInt64 型の基数を返します。関数名にサフィックス -State を付けると、ビットマップオブジェクトを返します。 |
| groupBitmapAnd | ビットマップカラム同士の AND を計算し、その結果の要素数を UInt64 型で返します。-State 接尾辞を付けると、ビットマップオブジェクトを返します。 |
| groupBitmapOr | ビットマップカラム同士の OR を計算し、その結果の基数を UInt64 型で返します。サフィックスに -State を付けると、ビットマップオブジェクトを返します。これは groupBitmapMerge と同等です。 |
| groupBitmapXor | ビットマップカラムの XOR を計算し、UInt64 型の要素数(cardinality)を返します。サフィックス -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 | 一連の区間について、区間同士が交差する回数の最大値を(すべての区間が少なくとも一度は互いに交差する場合に)計算する集約関数。 |
| 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 の平方根と等しくなります。この関数は varSamp とは異なり、数値的に安定なアルゴリズムを使用します。 |
| stochasticLinearRegression | この関数は確率的線形回帰を実装します。学習率、L2 正則化係数、ミニバッチサイズを任意に指定でき、重み更新のためのいくつかの手法(Adam、単純な SGD、Momentum、Nesterov)をサポートします。 |
| stochasticLogisticRegression | この関数は確率的ロジスティック回帰を実装します。二値分類問題に使用でき、stochasticLinearRegression と同じカスタムパラメータをサポートし、動作も同様です。 |
| studentTTest | 2つの母集団からの標本にスチューデントの t 検定を適用します。 |
| studentTTestOneSample | 既知の母平均が与えられた標本に 1 標本 Student の t 検定を適用します。 |
| sum | 合計を計算します。数値に対してのみ使用できます。 |
| sumCount | 数値の合計を計算すると同時に、行数もカウントします。この関数は ClickHouse のクエリオプティマイザーで使用されます。クエリ内に複数の sum、count、avg 関数がある場合、それらを 1 つの sumCount 関数に置き換えることで、計算結果を再利用できます。この関数を明示的に呼び出す必要があるケースはまれです。 |
| sumKahan | Kahan 補償和アルゴリズムを用いて数値の総和を計算します |
| sumMap | key 配列で指定されたキーに従って、1 つ以上の value 配列を合計します。ソートされたキー配列と、それぞれのキーに対応する値をオーバーフローなしで合計した配列から成るタプルを返します。 |
| sumMapWithOverflow | key 配列で指定されたキーに従って、value 配列を集計します。ソート済みのキーの配列と、それぞれのキーに対応して合計された値の配列という、2 つの配列からなるタプルを返します。オーバーフローありで加算を行う点で、sumMap 関数と異なります。 |
| sumWithOverflow | 数値の合計を計算し、結果のデータ型は入力パラメータと同じになります。合計がこのデータ型の最大値を超えた場合、オーバーフローした結果として計算されます。 |
| theilsU | theilsU 関数は、テーブル内の 2 つのカラム間の関連性を測る指標である Theils' U 不確実性係数を計算します。 |
| 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 と同様の変化量を計算する集約関数です。 |
| timeSeriesResetsToGrid | 指定されたグリッド上の時系列データに対して、PromQL 風のリセットを計算する集約関数。 |
| groupConcat | 文字列のグループから、必要に応じて区切り文字で区切りながら連結した文字列を生成し、さらに必要に応じて要素数の最大数で制限できます。 |
| quantilePrometheusHistogram | ヒストグラムの分位点を線形補間で計算します。 |