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

如何对按ID取最新日期的不同ID对应的Value求和?

如何计算各ID最新日期对应Value的总和

表结构

ID       Date        Value
ID1     01.01.2022    10
ID1     01.02.2022    10
ID1     01.03.2022    20
ID1     01.04.2022    30
ID2     01.01.2022    20

需求说明

需要计算每个ID最新日期对应的Value之和,预期结果为 50(ID1最新日期01.04.2022的Value30 + ID2的Value20)。

已有代码问题修正

你提供的SQL里,ORDER BY DATE ASC会取每个ID的最早日期记录,要获取最新日期的话,需要改成ORDER BY DATE DESC:

-- 修正后的筛选各ID最新记录的SQL
SELECT ID, VALUE, DATE FROM ( 
SELECT *, ROW_NUMBER() OVER (PARTITION BY ID ORDER BY DATE DESC) AS ROWNUM 
FROM "Table") X 
WHERE ROWNUM = 1

求和解决方案

在修正后的子查询外层嵌套SUM()聚合函数即可得到总和:

SELECT SUM(VALUE) AS TotalSum
FROM (
    SELECT *,
           ROW_NUMBER() OVER (PARTITION BY ID ORDER BY DATE DESC) AS ROWNUM
    FROM "Table"
) X
WHERE ROWNUM = 1

执行逻辑

  1. 内层子查询按ID分组,每组内按Date倒序排列,给最新日期的记录分配ROWNUM=1
  2. 外层查询过滤出所有ROWNUM=1的记录,对这些记录的Value字段求和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:54:33