ウィンドウ関数
TiDB でのウィンドウ関数の使用方法は、MySQL 8.0 の場合と同様です。詳細については、 MySQL ウィンドウ関数を参照してください。
ウィンドウ関数はパーサーで追加の単語を予約するため、TiDB ではウィンドウ関数を無効にするオプションが用意されています。アップグレード後に SQL ステートメントの解析エラーが発生する場合は、 tidb_enable_window_function=0
設定してみてください。
ウィンドウ関数ここに記載 TiFlashにプッシュダウンできます。
GROUP_CONCAT()
とAPPROX_PERCENTILE()
を除き、 TiDB はGROUP BY
集計関数すべてをサポートします。さらに、 TiDB は次のウィンドウ関数をサポートします。
関数名 | 機能の説明 |
---|---|
CUME_DIST() | 値のグループ内の値の累積分布を返します。 |
DENSE_RANK() | パーティション内の現在の行のランクを返します。ランクにはギャップはありません。 |
FIRST_VALUE() | 現在のウィンドウの最初の行の式の値を返します。 |
LAG() | パーティション内の現在の行の N 行前の行から式の値を返します。 |
LAST_VALUE() | 現在のウィンドウの最後の行の式の値を返します。 |
LEAD() | パーティション内の現在の行から N 行後の行の式の値を返します。 |
NTH_VALUE() | 現在のウィンドウの N 行目から式の値を返します。 |
NTILE() | パーティションを N 個のバケットに分割し、パーティション内の各行にバケット番号を割り当て、パーティション内の現在の行のバケット番号を返します。 |
PERCENT_RANK() | 現在の行の値より小さいパーティション値の割合を返します。 |
RANK() | パーティション内の現在の行のランクを返します。ランクにはギャップがある場合があります。 |
ROW_NUMBER() | パーティション内の現在の行番号を返します。 |
このページは役に立ちましたか?
Playground
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。