すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:FIRST_VALUE

最終更新日:Jan 07, 2025

データストリームの最初の非 NULL レコードを返します。

構文

FIRST_VALUE( T value )
FIRST_VALUE( T value, BIGINT order )

引数

引数

データ型

説明

value

任意のデータ型

データストリーム。

説明
  • すべての入力データが NULL の場合、NULL が返されます。

  • 引数は同じデータ型である必要があります。

order

BIGINT

order 値が最小の非 NULL レコードが、最初の非 NULL レコードと見なされます。

  • T1 テーブルのテストデータ

    user_id(VARCHAR)

    product_id(BIGINT)

    create_time(TIMESTAMP)

    user_001

    1

    2023-02-15 10:40:56

    user_002

    2

    2023-02-15 11:40:56

    user_003

    3

    2023-02-15 12:40:56

    user_001

    4

    2023-02-15 13:40:55

    user_002

    5

    2023-02-15 14:40:56

    user_001

    1

    2023-02-15 15:40:56

    user_003

    4

    2023-02-15 16:40:56

  • テストコード

    テストコード 1

    このコードスニペットは、user_id でデータをグループ化し、各グループを create_time でソートし、各グループの最初の製品の product_id を返します。

    SELECT `user_id`, create_time, product_id, FIRST_VALUE(product_id) 
    OVER (PARTITION BY `user_id` ORDER BY create_time) AS first_product
    FROM T1;

    テストコード 2

    このコードスニペットは、product_id でデータをグループ化し、各グループを create_time でソートし、各製品の最初の user_id を返します。

    SELECT product_id,FIRST_VALUE( `user_id`, UNIX_TIMESTAMP(create_time)) AS first_product
    FROM T1
    group by product_id;
  • テスト結果

    テスト結果 1

    user_id(VARCHAR)

    create_time(TIMESTAMP)

    product_id(BIGINT)

    first_product(BIGINT)

    user_001

    2023-02-15 10:40:56

    1

    1

    user_001

    2023-02-15 13:40:56

    4

    1

    user_001

    2023-02-15 15:40:56

    1

    1

    user_002

    2023-02-15 11:40:56

    2

    2

    user_002

    2023-02-15 14:40:56

    5

    2

    user_003

    2023-02-15 12:40:56

    3

    3

    user_003

    2023-02-15 16:40:56

    4

    3

    テスト結果 2

    product_id

    first_user

    1

    user_001

    2

    user_002

    3

    user_003

    4

    user_001

    5

    user_002