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

如何通过SQL按字段最大timestamp聚合同表最新字段值并合并?

解决方案

核心需求是按group_id分组,分别获取first_name、last_name两类标签下最新sent_at对应的字段值,再合并成一个字段。你之前用cross join得到全组合,是因为没精准过滤每个标签的最新记录,试试下面两种通用方法:

方法一:窗口函数筛选最新记录 + 条件聚合

SELECT
    group_id,
    CONCAT(
        MAX(CASE WHEN field_label = 'first_name' THEN field_value END),
        ' ',
        MAX(CASE WHEN field_label = 'last_name' THEN field_value END)
    ) AS amalgamated_field
FROM (
    SELECT
        group_id,
        field_label,
        field_value,
        -- 给每个group_id+field_label分组,按sent_at倒序排序,最新记录标记为1
        ROW_NUMBER() OVER (PARTITION BY group_id, field_label ORDER BY sent_at DESC) AS rn
    FROM 你的源表名
    WHERE field_label IN ('first_name', 'last_name') -- 仅保留需要处理的标签
) t
WHERE rn = 1 -- 只取每个标签的最新记录
GROUP BY group_id;

方法二:先筛选单标签最新记录再关联合并

如果觉得子查询嵌套麻烦,也可以拆分步骤,先分别获取两类标签的最新值,再通过group_id关联合并:

WITH latest_first_name AS (
    SELECT
        group_id,
        field_value AS first_name
    FROM (
        SELECT
            group_id,
            field_value,
            ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY sent_at DESC) AS rn
        FROM 你的源表名
        WHERE field_label = 'first_name'
    ) t
    WHERE rn = 1
),
latest_last_name AS (
    SELECT
        group_id,
        field_value AS last_name
    FROM (
        SELECT
            group_id,
            field_value,
            ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY sent_at DESC) AS rn
        FROM 你的源表名
        WHERE field_label = 'last_name'
    ) t
    WHERE rn = 1
)
SELECT
    COALESCE(lfn.group_id, lln.group_id) AS group_id,
    CONCAT(lfn.first_name, ' ', lln.last_name) AS amalgamated_field
FROM latest_first_name lfn
FULL JOIN latest_last_name lln ON lfn.group_id = lln.group_id;

关键说明

  • ROW_NUMBER() OVER (PARTITION BY group_id, field_label ORDER BY sent_at DESC)是核心逻辑:它会把每个group_id下的同标签记录按时间从新到旧排序,最新的那条会被标记为rn=1,这样就能精准过滤出目标记录,避免出现全组合问题。
  • 如果你用的数据库支持PIVOT语法(比如SQL Server、Oracle),也可以用PIVOT转置实现,但上面两种方法适配绝大多数SQL数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:35:21