ANY_VALUE¶
グループから式の値を返します。結果は非決定的です。
構文¶
集計関数
ウィンドウ関数
引数¶
expr1入力式。
expr2結果を複数のパーティションに分割する場合は、パーティション分割する列を指定します。
戻り値¶
この関数は、任意のデータ型の値を返すことができます。
入力式が NULL の場合、関数は NULL を返します。
使用上の注意¶
この関数には DISTINCT キーワードを指定できますが、効果はありません。
関数は NULL の値を除外しません。式に NULL の値が含まれている場合、関数は NULL の値を返すことができます。
この関数がウィンドウ関数として呼び出される場合、以下はサポートされていません。
OVER 句内の ORDER BY 句。
明示的なウィンドウフレーム。
ANY_VALUE と GROUP BY ステートメントの併用¶
ANY_VALUE により、 GROUP BY ステートメントのパフォーマンスを簡素化および最適化できます。多くのクエリに共通する問題は、 GROUP BY 句を含むクエリの結果に、 GROUP BY 句自体で使用される式、または集計関数の結果しか含まれないことです。例:
このクエリでは、結果に含むためには customer.name 属性が GROUP BY に含まれている必要があります。これは不要であり(例: customer.id が一意であることが既知の場合)、計算がより複雑で遅くなる可能性があります。別のオプションは、集計関数を使用することです。例:
これにより、 GROUP BY 句が簡素化されますが、引き続き MIN 関数を計算する必要があり、余分なコストが発生します。
ANY_VALUE を使用すると、次のクエリを実行できます。