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

如何将临时表AllYears列替换为YearFrom/YearTo并合并重复行?

解决方案:合并同组记录的年份范围

你的需求是将除年份外其他字段完全一致的记录合并,用最小年份作为YearFrom,最大年份作为YearTo。核心是通过GROUP BY对重复分组字段聚合,配合MIN()和MAX()函数提取年份区间。

原始临时表数据

StockID SKU Type    Id  Make    Model   Variant CC  AllYears
000164  JTR16.40                        36  Aprilia     Tuareg Wind     125 1988
000541  JTR5.41                         1789    Aprilia ETX Tuareg  125 1985
000541  JTR5.41                         1789    Aprilia ETX Tuareg  125 1986
000541  JTR5.41                         1789    Aprilia ETX Tuareg  125 1987
000543  JTR5.43                         24  Aprilia     Pegaso  600 1990
000543  JTR5.43                         24  Aprilia     Pegaso  600 1991
000543  JTR5.43                         24  Aprilia     Pegaso  600 1992
000543  JTR5.43                         24  Aprilia     Pegaso  600 1993
000543  JTR5.43                         38  Aprilia     Tuareg Wind     600 1990
000543  JTR5.43                         38  Aprilia     Tuareg Wind     600 1991
000543  JTR5.43                         38  Aprilia     Tuareg Wind     600 1992
000543  JTR5.43                         33  Aprilia SPX Tuareg Paris Dakar  600 1988
000543  JTR5.43                         33  Aprilia SPX Tuareg Paris Dakar  600 1989
000543  JTR5.43                         33  Aprilia SPX Tuareg Paris Dakar  600 1990

目标输出格式

StockID SKU Type    Id  Make    Model   Variant CC  YearFrom    YearTo
000164  JTR16.40                        36  Aprilia     Tuareg Wind     125 1988    1988
000541  JTR5.41                         1789    Aprilia ETX Tuareg  125 1985    1987
000543  JTR5.43                         24  Aprilia     Pegaso  600 1990    1993
000543  JTR5.43                         38  Aprilia     Tuareg Wind     600 1990    1992
000543  JTR5.43                         33  Aprilia SPX Tuareg Paris Dakar  600 1988    1990

实现SQL代码

假设临时表名为#TempTable,执行以下语句即可得到目标结果:

SELECT 
    StockID,
    SKU,
    Type,
    Id,
    Make,
    Model,
    Variant,
    CC,
    MIN(AllYears) AS YearFrom,
    MAX(AllYears) AS YearTo
FROM #TempTable
GROUP BY 
    StockID,
    SKU,
    Type,
    Id,
    Make,
    Model,
    Variant,
    CC
ORDER BY StockID, Id;

逻辑说明

  1. 分组规则:将所有除AllYears外的字段作为分组键,确保只有完全相同的记录会被归为一组。
  2. 年份聚合:对每组的AllYears分别取最小值(起始年份)和最大值(结束年份),替换原有的单一年份字段。
  3. 结果排序:按StockID和Id排序,保持结果与目标格式的顺序一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:22:52