全部产品
Search
文档中心

Realtime Compute for Apache Flink:FIRST_VALUE

更新时间:Jun 19, 2025

Mengembalikan rekaman non-null pertama dari aliran data.

Sintaksis

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

Argumen

Argumen

Tipe data

Deskripsi

value

Tipe data apa pun

Sebuah aliran data.

null
  • Jika semua data masukan adalah NULL, maka akan dikembalikan NULL.

  • Argumen harus memiliki tipe data yang sama.

order

BIGINT

Rekaman non-null dengan nilai urutan terkecil dianggap sebagai rekaman non-null pertama.

Contoh

  • Data uji pada tabel 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

  • Kode uji

    Kode uji 1

    Potongan kode ini mengelompokkan data berdasarkan user_id, mengurutkan setiap grup berdasarkan create_time, dan mengembalikan product_id produk pertama dalam setiap grup.

    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;

    Kode uji 2

    Potongan kode ini mengelompokkan data berdasarkan product_id, mengurutkan setiap grup berdasarkan create_time, dan mengembalikan user_id pertama untuk setiap produk.

    SELECT product_id,FIRST_VALUE( `user_id`, UNIX_TIMESTAMP(create_time)) AS first_product
    FROM T1
    group by product_id;
  • Hasil uji

    Hasil uji 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

    Hasil uji 2

    product_id

    first_user

    1

    user_001

    2

    user_002

    3

    user_003

    4

    user_001

    5

    user_002