You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery中获取数据表的最后更新记录

实现每个_id的最新更新记录查询(BigQuery SQL)

针对你的需求——获取每个_id对应的最后更新记录,排除旧版本数据,这里提供两种在BigQuery中可行的SQL实现方式:

方法一:使用ROW_NUMBER()窗口函数

通过子查询给每个_id组内的记录按更新时间倒序排名,再筛选排名第一的记录:

WITH ranked_records AS (
  SELECT
    _id,
    hours,
    dateUpdated,
    -- 按_id分组,dateUpdated倒序排序,最新记录排第1
    ROW_NUMBER() OVER (PARTITION BY _id ORDER BY dateUpdated DESC) AS rn
  FROM
    `你的项目ID.你的数据集ID.你的表名` -- 替换为实际的表路径
)
SELECT
  _id,
  hours,
  dateUpdated
FROM
  ranked_records
WHERE
  rn = 1;

方法二:使用QUALIFY子句(BigQuery简洁写法)

BigQuery支持QUALIFY子句,可以直接基于窗口函数的结果过滤数据,无需子查询:

SELECT
  _id,
  hours,
  dateUpdated
FROM
  `你的项目ID.你的数据集ID.你的表名` -- 替换为实际的表路径
QUALIFY
  ROW_NUMBER() OVER (PARTITION BY _id ORDER BY dateUpdated DESC) = 1;

补充说明

  • 如果同一_id存在多条同一更新时间的记录,ROW_NUMBER()会随机保留一条;若需要保留所有同时间的记录,可将ROW_NUMBER()替换为RANK()或DENSE_RANK()。

内容的提问来源于stack exchange,提问作者user2570135

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:26:00