BigQuery 相当于 PostgreSQL 的“DISTINCT ON”的是什么?

Fra*_*anc 4 distinct distinct-on window-functions google-bigquery

我正在将一些查询从 PostgreSQL 方言迁移到 BigQuery。PostgreSQL中的一个很好的模式DISTINCT ON (key),它根据本ORDER BY节中定义的序列返回每个键的第一行。

我是否可以在 BigQuery 中使用类似的模式来避免将查询包装为 CTE?

PostgreSQL 查询:

SELECT
    DISTINCT ON (user_id)
    user_id,
    updated_on,
    net_change
FROM
    table_name
ORDER BY
    user_id, updated_on DESC
Run Code Online (Sandbox Code Playgroud)

Fra*_*anc 7

BigQuery 相当于 PostgreSQL 方言的DISTINCT ON (key)是带有窗口函数的子句QUALIFY

SELECT
    user_id,
    updated_on,
    net_change
FROM
    table_name
QUALIFY
    ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY updated_on DESC) = 1
Run Code Online (Sandbox Code Playgroud)