gpt4 book ai didi

google-bigquery - 每个具有最新时间戳的唯一 ID 选择一个

转载 作者:行者123 更新时间:2023-12-04 05:56:08 25 4
gpt4 key购买 nike

我在 Big Query 中有一个表,其中包含唯一 ID、时间戳和距离,我想按 ID 和最新时间​​戳选择一条记录。

例如 table 看起来像

ID|timestamp|distance
A|100|2
A|90|3
B|110|5
D|100|4
A|80|2
B|10|2

查询应该返回如下内容:

A|100|2
B|110|5
D|100|4

PostgreSQL 中的一个工作查询看起来像这样,但是 bigquery 中没有“distinct ON”?

SELECT * FROM (
SELECT DISTINCT ON (ID)
id, timestamp, distance
FROM ranking
ORDER BY ID, timestamp DESC
) AS latest_dtg
ORDER BY distance

最佳答案

以下是 BigQuery 标准 SQL

#standardSQL
SELECT row.* FROM (
SELECT ARRAY_AGG(r ORDER BY timestamp DESC LIMIT 1)[OFFSET(0)] AS row
FROM ranking AS r
GROUP BY id
)

您可以使用问题中的以下虚拟数据进行播放/测试

#standardSQL
WITH ranking AS (
SELECT 'A' AS id, 100 AS timestamp, 2 AS distance UNION ALL
SELECT 'A', 90, 3 UNION ALL
SELECT 'B', 110, 5 UNION ALL
SELECT 'D', 100, 4 UNION ALL
SELECT 'B', 10, 2 UNION ALL
SELECT 'A', 80, 2
)
SELECT row.* FROM (
SELECT ARRAY_AGG(r ORDER BY timestamp DESC LIMIT 1)[OFFSET(0)] AS row
FROM ranking AS r
GROUP BY id
)

关于google-bigquery - 每个具有最新时间戳的唯一 ID 选择一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43847848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com