Amazon Redshift は、2025 年 11 月 1 日以降、新しい Python UDF の作成をサポートしなくなります。Python UDF を使用する場合は、その日付より前に UDF を作成してください。既存の Python UDF は引き続き通常どおり機能します。詳細については、ブログ記事
ANY_VALUE 関数
ANY_VALUE 関数は、入力式の値から任意の値を非決定的に返します。この関数は、入力式で行が返されない場合に NULL を返します。この関数は、入力式に NULL 値がある場合にも NULL を返します。入力に NULL 以外の NULL 値と混合された値が含まれている場合、NULL が返される可能性があります。すべての値が NULL の場合、NULL が返されます。条件に一致する行がない場合、NULL が返されます。
構文
ANY_VALUE( [ DISTINCT | ALL ] expression )
引数
- DISTINCT | ALL
-
DISTINCT または ALL のいずれかを指定すると、入力式の値から任意の値が返されます。DISTINCT 引数は効果がなく、無視されます。
- 式
-
関数が動作するターゲット列または式。式は、以下に示すデータ型の 1 つを取ります。
SMALLINT
INTEGER
BIGINT
DECIMAL
REAL
DOUBLE PRECISION
BOOLEAN
CHAR
VARCHAR
DATE
TIMESTAMP
TIMESTAMPTZ
TIME
TIMETZ
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
VARBYTE
SUPER
HLLSKETCH
GEOMETRY
GEOGRAPHY
戻り値
同じデータ型を expression として返します。
使用に関する注意事項
列の ANY_VALUE 関数を指定するステートメントに 2 番目の列参照も含まれている場合、2 番目の列は GROUP BY 句に含めるか、集計関数に含める必要があります。
例
この例では、Amazon Redshift 入門ガイドの「ステップ 4: Amazon S3 のサンプルデータをロードする」で作成したイベントテーブルを使用します。次の例では、イベント名が Eagles である任意の dateid のインスタンスを返します。
select any_value(dateid) as dateid, eventname from event where eventname ='Eagles' group by eventname;
結果は、以下の通りです。
dateid | eventname -------+--------------- 1878 | Eagles
次の例では、イベント名が Eagles または Cold War Kids である任意の dateid のインスタンスを返します。
select any_value(dateid) as dateid, eventname from event where eventname in('Eagles', 'Cold War Kids') group by eventname;
結果は、以下のとおりです。
dateid | eventname -------+--------------- 1922 | Cold War Kids 1878 | Eagles