翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Window 関数
ウィンドウ関数は、クエリ結果の行間で計算を実行します。これらは HAVING 句の後、Word ORDER BY 句の前に実行されます。ウィンドウ関数を呼び出すには、OVER 句を使用してウィンドウを指定する特別な構文が必要です。ウィンドウには 3 つのコンポーネントがあります。
-
入力行を異なるパーティションに分割するパーティション仕様。これは、GROUP BY 句が集計関数のために行を異なるグループに分割する方法に似ています。
-
ウィンドウ関数によって入力行が処理される順序を決定する順序仕様。
-
ウィンドウフレーム。特定の行の関数によって処理される行のスライディングウィンドウを指定します。フレームが指定されていない場合、デフォルトで RANGE UNBOUNDED PRECEDING になります。これは RANGE BETWEEN UNBOUNDED AND PRECEDING Word 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、オフセット) |
〔入力と同じ〕 |
ウィンドウの開始から指定されたオフセットの値を返します。オフセットは 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 が返されます。関数は、式またはターゲットを最初のパラメータとして受け取ります。 |