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

按ID分组选取每组前两行并转换为新旧值格式

分组提取每组前两行并转换字段的SQL解决方案

输入数据表

IDValue
12345123.78
12345556.87
123451638.09
12345133.44
5678944
56789434.2
5678924.44

目标输出

IDNew ValueOld Value
12345123.78556.87
5678944434.2

实现SQL

SELECT
    ID,
    MAX(CASE WHEN rn = 1 THEN Value END) AS `New Value`,
    MAX(CASE WHEN rn = 2 THEN Value END) AS `Old Value`
FROM (
    SELECT
        ID,
        Value,
        ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Value) AS rn
    FROM your_table_name
) t
WHERE rn <= 2
GROUP BY ID;

关键说明

  • 子查询通过ROW_NUMBER()窗口函数,按ID分组后给每组内的记录生成行号rn,排序规则默认按Value升序;若需按插入顺序或其他规则调整,可替换ORDER BY Value为对应字段(如时间戳)。
  • 外层用条件聚合,分别提取行号为1和2的Value值,映射为New Value和Old Value,最后按ID分组汇总得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:12:35