ウィンドウ関数 - Amazon Timestream

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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ウィンドウ関数

ウィンドウ関数は、クエリ結果の行全体で計算を実行します。HAVING 句の後、ORDER BY 句の前に実行されます。ウィンドウ関数を呼び出すには、OVER 句を使用してウィンドウを指定する特別な構文が必要です。ウィンドウには次の 3 つのコンポーネントがあります。

  • 入力行を異なるパーティションに分割するパーティション指定。これは、GROUP BY 句が集計関数のために行を異なるグループに分割する方法に似ています。

  • ウィンドウ関数によって入力行が処理される順序を決定する順序指定。

  • ウィンドウフレーム。特定の行の関数によって処理される行のスライディングウィンドウを指定します。フレームが指定されていない場合、デフォルトで RANGE UNBOUNDED PRECEDING になります。これは、RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW と同じです。このフレームには、パーティションの先頭から現在行の最後のピアまでのすべての行が含まれます。

すべての集計関数は、OVER 句を追加することでウィンドウ関数として使用できます。集計関数は、現在行のウィンドウフレーム内の行にわたって各行に対して計算されます。Timestream for LiveAnalytics は、集計関数に加えて、次のランク付け関数と値関数をサポートしています。

関数 出力データ型 説明

cume_dist()

bigint

値グループ内の値の累積分布を返します。結果は、ウィンドウパーティションのウィンドウの順序において、対象となる行の前または同列の行数を、ウィンドウパーティションの行の合計数で割ったものです。したがって、順序のタイ値は同じ分散値に評価されます。

dense_rank()

bigint

値グループ内の値のランクを返します。これは rank() に似ていますが、タイ値がシーケンスにギャップを生成しない点が異なります。

ntile(n)

bigint

各ウィンドウパーティションの行を 1 から最大 n の範囲の n 個のバケットに分割します。バケット値は最大 1 だけ異なります。パーティション内の行数がバケット数に均等に分割されない場合、残りの値は最初のバケットから始めてバケットごとに 1 つずつ分散されます。

percent_rank()

double

値グループ内の値のパーセンテージ順位を返します。結果は (r - 1) / (n - 1) です。ここで、r は行の rank() で、n はウィンドウパーティションの行の合計数です。

rank()

bigint

値グループ内の値のランクを返します。ランクは、対象となる行の前にある行のうち、その行と同列でない行の数に 1 を加えたものです。このため、順序のタイ値により、シーケンスにギャップが発生します。ランク付けはウィンドウパーティションごとに実行されます。

row_number()

bigint

ウィンドウパーティション内の行の順序に従って、行ごとに 1 から始まる一意の連番を返します。

first_value(x)

[入力と同じ]

ウィンドウの最初の値を返します。この関数はウィンドウフレームに限定されます。関数は、式またはターゲットをパラメータとして受け取ります。

last_value(x)

[入力と同じ]

ウィンドウの最後の値を返します。この関数はウィンドウフレームに限定されます。関数は、式またはターゲットをパラメータとして受け取ります。

nth_value(x, offset)

[入力と同じ]

ウィンドウの開始から指定されたオフセットの値を返します。オフセットは 1 から始まります。オフセットは任意のスカラー式にすることができます。オフセットが null であるか、ウィンドウの値の数より大きい場合、null が返されます。オフセットがゼロまたは負の場合は、エラーとなります。関数は、式またはターゲットを最初のパラメータとして受け取ります。

lead(x[, offset[, default_value]])

[入力と同じ]

ウィンドウの現在行の後におけるオフセット行の値を返します。オフセットは、現在の行である 0 から始まります。オフセットは任意のスカラー式にすることができます。デフォルトのオフセットは 1 です。オフセットが null またはウィンドウより大きい場合、default_value が返されるか、指定されていない場合は null が返されます。関数は、式またはターゲットを最初のパラメータとして受け取ります。

lag(x[, offset[, default_value]])

[入力と同じ]

ウィンドウの現在の行より前のオフセット行の値を返します。オフセットは現在の行である 0 から始まります。オフセットは任意のスカラー式にすることができます。デフォルトのオフセットは 1 です。オフセットが null またはウィンドウより大きい場合、default_value が返されるか、指定されていない場合は null が返されます。関数は、式またはターゲットを最初のパラメータとして受け取ります。