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)
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)