ANY_VALUE 関数 - Amazon Redshift

ANY_VALUE 関数

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