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

SQL技术求助:获取去重记录后如何追加LoadDateTime列?

解决方案

针对你需要保留业务列去重结果并追加LoadDateTime的需求,提供两种实用的BigQuery SQL写法:

方法一:用窗口函数获取指定排序的LoadDateTime(推荐)

这种方式可以灵活选择要保留的LoadDateTime(比如最新/最早的),同时确保业务列唯一:

WITH deduplicated_data AS (
  SELECT
    *,
    -- 按业务列分组,按LoadDateTime倒序排,最新的记录标记为1
    ROW_NUMBER() OVER (
      PARTITION BY * EXCEPT (LoadDate, LoadDateTime, SourceFilename)
      ORDER BY LoadDateTime DESC
    ) AS row_num
  FROM a
)
-- 筛选出每组第一条,保留业务列和LoadDateTime,去掉多余列
SELECT * EXCEPT (LoadDate, SourceFilename, row_num)
FROM deduplicated_data
WHERE row_num = 1;

如果需要最早的LoadDateTime,把ORDER BY LoadDateTime DESC改成ASC即可。

方法二:用聚合函数快速关联LoadDateTime

如果只需要对应业务组的任意一个LoadDateTime(比如最新/最早),可以直接用分组聚合:

SELECT
  * EXCEPT (LoadDate, LoadDateTime, SourceFilename),
  MAX(LoadDateTime) AS LoadDateTime -- 取最新的LoadDateTime,用MIN则取最早的
FROM a
GROUP BY * EXCEPT (LoadDate, LoadDateTime, SourceFilename);

这两种写法都能得到业务列去重后的1条记录,同时带上你需要的LoadDateTime字段,解决之前重复数据的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:27:21