集計関数 - Amazon Timestream

Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。

集計関数

Timestream for LiveAnalytics は、次の集計関数をサポートしています。

関数 出力データ型 説明

arbitrary(x)

[入力と同じ]

存在する場合は、x の任意の非 NULL 値を返します。

SELECT arbitrary(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 1

array_agg(x)

array<[same as input]

入力 x の要素から作成された配列を返します。

SELECT array_agg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: [ 1,2,3,4 ]

avg(x)

double

すべての入力値の平均 (算術平均) を返します。

SELECT avg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 2.5

bool_and(boolean) every(boolean)

boolean

すべての入力値が TRUE の場合は TRUE を返し、それ以外の場合は FALSE を返します。

SELECT bool_and(t.c) FROM (VALUES true, true, false, true) AS t(c)

結果の例: false

bool_or(boolean)

boolean

入力値が TRUE の場合は TRUE を返し、それ以外の場合は FALSE を返します。

SELECT bool_or(t.c) FROM (VALUES true, true, false, true) AS t(c)

結果の例: true

count(*) count(x)

bigint

count(*) は入力行数を返します。

count(x) は NULL 以外の入力値の数を返します。

SELECT count(t.c) FROM (VALUES true, true, false, true) AS t(c)

結果の例: 4

count_if(x)

bigint

TRUE の入力値の数を返します。

SELECT count_if(t.c) FROM (VALUES true, true, false, true) AS t(c)

結果の例: 3

geometric_mean(x)

double

すべての入力値の幾何平均を返します。

SELECT geometric_mean(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 2.213363839400643

max_by(x, y)

[x と同じ]

すべての入力値に対して y が最大値の場合の関連付けられた x の値を返します。

SELECT max_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

結果の例: d

max_by(x, y, n)

array<[x と同じ]>

y の全入力値のうち n 個の最大値に関連付けられた x の n 個の値を y の降順で返します。

SELECT max_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

結果の例: [ d,c ]

min_by(x, y)

[x と同じ]

すべての入力値に対して y が最小値の場合の関連付けられた x の値を返します。

SELECT min_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

結果の例: a

min_by(x, y, n)

array<[x と同じ]>

y の全入力値のうち n 個の最小値に関連付けられた x の n 個の値を y の昇順で返します。

SELECT min_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

結果の例: [ a,b ]

max(x)

[入力と同じ]

すべての入力値の最大値を返します。

SELECT max(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 4

max(x, n)

array<[x と同じ]>

x の全入力値の n 個の最大値を返します。

SELECT max(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: [ 4,3 ]

min(x)

[入力と同じ]

すべての入力値の最小値を返します。

SELECT min(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 1

min(x, n)

array<[x と同じ]>

x の全入力値の n 個の最小値を返します。

SELECT min(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: [ 1,2 ]

sum(x)

[入力と同じ]

列の全入力値の合計を返します。

SELECT sum(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 10

bitwise_and_agg(x)

bigint

全入力値のビット単位の AND を 2 の補数表現で返します。

SELECT bitwise_and_agg(t.c) FROM (VALUES 1, -3) AS t(c)

結果の例: 1

bitwise_or_agg(x)

bigint

全入力値のビット単位の OR を 2 の補数表現で返します。

SELECT bitwise_or_agg(t.c) FROM (VALUES 1, -3) AS t(c)

結果の例: -3

approx_distinct(x)

bigint

固有の入力値の概数を返します。この関数は count(DISTINCT x) の近似値を提供します。すべての入力値が null の場合、ゼロが返されます。この関数では、2.3% の標準誤差が発生するはずです。これは、すべての可能なセットに対する (ほぼ通常の) エラー分布の標準偏差です。特定の入力セットにおけるエラーの上限は保証されません。

SELECT approx_distinct(t.c) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)

結果の例: 5

approx_distinct(x, e)

bigint

固有の入力値の概数を返します。この関数は count(DISTINCT x) の近似値を提供します。すべての入力値が null の場合、ゼロが返されます。この関数では、e 以下の標準誤差が発生するはずです。これは、すべての可能なセットに対する (ほぼ通常の) エラー分布の標準偏差です。特定の入力セットにおけるエラーの上限は保証されません。この関数の現在の実装では、e が [0.0040625, 0.26000] の範囲内にある必要があります。

SELECT approx_distinct(t.c, 0.2) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)

結果の例: 5

approx_percentile(x, percentage)

[x と同じ]

指定された割合で x の全入力値の近似パーセンタイルを返します。割合の値は 0 と 1 の間で、すべての入力行で一定である必要があります。

SELECT approx_percentile(t.c, 0.4) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 2

approx_percentile(x, percentages)

array<[x と同じ]>

指定された各割合で x の全入力値の近似パーセンタイルを返します。割合の配列の各要素は 0 と 1 の間で、配列はすべての入力行で一定である必要があります。

SELECT approx_percentile(t.c, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: [ 1,4,4 ]

approx_percentile(x, w, percentage)

[x と同じ]

割合 p で項目ごとの重み w を使用して、x のすべての入力値に対して重み付けした近似パーセンタイルを返します。重みは少なくとも 1 の整数値である必要があります。これは実質的に、パーセンタイルセットの値 x のレプリケーション数です。p の値は 0 と 1 の間で、すべての入力行で一定である必要があります。

SELECT approx_percentile(t.c, 1, 0.1) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 1

approx_percentile(x, w, percentages)

array<[x と同じ]>

配列で指定された各割合で項目ごとの重み w を使用して、x のすべての入力値に対して重み付けした近似パーセンタイルを返します。重みは少なくとも 1 の整数値である必要があります。これは実質的に、パーセンタイルセットの値 x のレプリケーション数です。配列の各要素は 0 と 1 の間で、配列はすべての入力行で一定である必要があります。

SELECT approx_percentile(t.c, 1, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: [ 1,4,4 ]

approx_percentile(x, w, percentage, accuracy)

[x と同じ]

割合 p で項目ごとの重み w を使用し、最大ランク誤差を精度として、x のすべての入力値に対して重み付けした近似パーセンタイルを返します。重みは少なくとも 1 の整数値である必要があります。これは実質的に、パーセンタイルセットの値 x のレプリケーション数です。p の値は 0 と 1 の間で、すべての入力行で一定である必要があります。精度は 0 より大きく 1 より小さい値で、すべての入力行で一定である必要があります。

SELECT approx_percentile(t.c, 1, 0.1, 0.5) FROM (VALUES 1, 2, 3, 4) AS t(c)

結果の例: 1

corr(y, x)

double

入力値の相関係数を返します。

SELECT corr(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

結果の例: 1.0

covar_pop(y, x)

double

入力値の母共分散を返します。

SELECT covar_pop(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

結果の例: 1.25

covar_samp(y, x)

double

入力値の標本共分散を返します。

SELECT covar_samp(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

結果の例: 1.6666666666666667

regr_intercept(y, x)

double

入力値の線形回帰切片を返します。y は依存値で、x は独立した値です。

SELECT regr_intercept(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

結果の例: 0.0

regr_slope(y, x)

double

入力値の線形回帰スロープを返します。y は依存値で、x は独立した値です。

SELECT regr_slope(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

結果の例: 1.0

skewness(x)

double

すべての入力値の歪度を返します。

SELECT skewness(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

結果の例: 0.8978957037987335

stddev_pop(x)

double

すべての入力値の母集団標準偏差を返します。

SELECT stddev_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

結果の例: 2.4166091947189146

stddev_samp(x) stddev(x)

double

すべての入力値の標本標準偏差を返します。

SELECT stddev_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

結果の例: 2.701851217221259

var_pop(x)

double

すべての入力値の母分散を返します。

SELECT var_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

結果の例: 5.840000000000001

var_samp(x) variance(x)

double

すべての入力値の標本分散を返します。

SELECT var_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

結果の例: 7.300000000000001