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

SQL Server实现Rate列累计求和并插入Table B的查询求助

SQL Server 累计求和并插入新表的查询语句

源表(Table A)结构与数据

DateTenorCCYRate
17-Jun-20233 MonthUSD500
17-Jun-20234 MonthUSD300
17-Jun-20235 MonthUSD700
17-Jun-20236 MonthUSD400

目标表(Table B)预期结果

DateTenorCCYRate
17-Jun-20233USD500
17-Jun-20234USD800
17-Jun-20235USD1000
17-Jun-20236USD1100

适用于SQL Server的查询语句

1. 若Table B已存在,直接插入数据

INSERT INTO TableB (Date, Tenor, CCY, Rate)
SELECT
    Date,
    -- 提取Tenor字段中的数字部分
    LEFT(Tenor, CHARINDEX(' ', Tenor) - 1) AS Tenor,
    CCY,
    -- 按Tenor数字排序,计算累计求和
    SUM(Rate) OVER (ORDER BY CAST(LEFT(Tenor, CHARINDEX(' ', Tenor) - 1) AS INT)) AS Rate
FROM TableA;

2. 若Table B未创建,先建表再插入

-- 创建Table B
CREATE TABLE TableB (
    Date DATE,
    Tenor VARCHAR(10),
    CCY VARCHAR(3),
    Rate INT
);

-- 插入处理后的数据
INSERT INTO TableB (Date, Tenor, CCY, Rate)
SELECT
    Date,
    LEFT(Tenor, CHARINDEX(' ', Tenor) - 1) AS Tenor,
    CCY,
    SUM(Rate) OVER (ORDER BY CAST(LEFT(Tenor, CHARINDEX(' ', Tenor) - 1) AS INT)) AS Rate
FROM TableA;

关键逻辑说明

  • 提取Tenor数字:通过LEFT和CHARINDEX函数截取Tenor字段中空格前的数字文本,匹配目标表的Tenor格式。
  • 累计求和:使用SUM() OVER(ORDER BY ...)窗口函数,按Tenor的数字大小排序,实现从第一行到当前行的Rate累计求和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:22:42