ANY_VALUE 関数は、入力式の値から任意の値を非決定的に返します。この関数は、入力式で行が返されない場合に NULL
を返します。この関数は、入力式に NULL
値がある場合にも NULL
を返します。
構文
ANY_VALUE( [ DISTINCT | ALL ] expression )
引数
- DISTINCT | ALL
-
DISTINCT または ALL のいずれかを指定すると、入力式の値から任意の値が返されます。DISTINCT 引数は効果がなく、無視されます。
- expression
-
関数が動作するターゲット列または式。式は、以下に示すデータ型の 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