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

如何去除仅timestamp不同的重复行,保留各车辆最新时间戳记录

问题原因

你现有的窗口函数写法存在两处逻辑偏差:

  • 排序方向错误:默认的ORDER BY Timestamp为升序排列,此时rank1=1取到的是每款车辆最早的时间戳记录,和你需要取最新时间戳的需求相反
  • 函数选择匹配度问题:RANK()函数遇到相同排序值时会返回相同排名,若某款车存在多条时间戳完全一致的最新记录,筛选rank1=1时会返回多条该车型的记录,如果你要求每款车仅返回一条,需要用ROW_NUMBER()替代。

正确实现方案

方案1:每款车仅保留1条最新记录(即使存在同时间戳的多条记录)

使用ROW_NUMBER()搭配倒序排序:

WITH ranked_vehicle_data AS (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY Make ORDER BY Timestamp DESC) AS rank1
    FROM 你两张表关联后的结果集
)
SELECT * FROM ranked_vehicle_data WHERE rank1 = 1;

方案2:允许同一款车的多条相同最新时间戳记录同时保留

保持使用RANK(),仅修改排序方向即可:

WITH ranked_vehicle_data AS (
    SELECT
        *,
        RANK() OVER (PARTITION BY Make ORDER BY Timestamp DESC) AS rank1
    FROM 你两张表关联后的结果集
)
SELECT * FROM ranked_vehicle_data WHERE rank1 = 1;

数据样例参考

  • 数据样例截图1
  • 数据样例截图2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:06:03