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

查询每组(val1、val2唯一组合)的最新created_date记录

双表分组获取最新记录的SQL方案

核心思路

先合并两张表的所有数据,再通过窗口函数为每个val1+val2组合的记录按created_date倒序排名,取排名第一的记录即为该组合的最新完整数据。

示例SQL代码

假设两张表分别为table1和table2,且均包含val1、val2、num1、num2、created_date字段:

WITH combined_data AS (
    -- 合并两张表的数据
    SELECT val1, val2, num1, num2, created_date FROM table1
    UNION ALL
    SELECT val1, val2, num1, num2, created_date FROM table2
),
ranked_records AS (
    -- 为每个组合的记录按日期倒序排名
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY val1, val2 ORDER BY created_date DESC) AS record_rank
    FROM combined_data
)
-- 筛选每个组合的最新记录
SELECT val1, val2, num1, num2, created_date
FROM ranked_records
WHERE record_rank = 1
ORDER BY val1, val2;

补充说明

  • 如果同一val1+val2组合存在多条created_date完全相同的记录,ROW_NUMBER()会随机返回其中一条;若需保留所有同日期的最新记录,可将ROW_NUMBER()替换为RANK()或DENSE_RANK()。
  • 确保两张表的字段类型完全匹配,避免UNION ALL时出现类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:10:42