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

Redash环境下计算指定用户A&B最后一笔交易金额之和的方法咨询

解决指定用户最后一笔交易金额求和的问题

对应示例数据的目标说明

假设你要计算用户123和456的最后一笔交易金额之和:

  • 用户123最后一笔是2022/11/02的9
  • 用户456最后一笔是2022/11/04的6
  • 最终求和结果为15

方法一:窗口函数实现(推荐,逻辑清晰)

利用ROW_NUMBER()窗口函数给每个用户的交易按日期倒序编号,取编号为1的记录就是最新交易,再筛选指定用户后求和:

SELECT SUM(Amount) AS total_last_transaction
FROM (
    SELECT 
        `user id`,
        Amount,
        ROW_NUMBER() OVER (PARTITION BY `user id` ORDER BY date DESC) AS rn
    FROM your_table_name
    WHERE `user id` IN (123, 456) -- 替换为你要指定的用户ID
) AS ranked_transactions
WHERE rn = 1;
  • 内层子查询:按用户分组,每组内交易按日期从新到旧编号,最新交易的rn值为1
  • 外层查询:仅保留每个用户的最新交易记录,对金额求和

方法二:关联子查询实现

先找出指定用户的最新交易日期,再关联原表匹配对应金额后求和:

SELECT SUM(t1.Amount) AS total_last_transaction
FROM your_table_name t1
INNER JOIN (
    SELECT `user id`, MAX(date) AS latest_date
    FROM your_table_name
    WHERE `user id` IN (123, 456)
    GROUP BY `user id`
) t2 ON t1.`user id` = t2.`user id` AND t1.date = t2.latest_date;
  • 子查询t2:筛选指定用户,计算每个用户的最新交易日期
  • 关联原表t1:匹配用户ID和最新日期,拿到对应交易金额后求和

Redash使用注意事项

  1. 将your_table_name替换为你实际的数据表名称
  2. 如果日期字段是非标准格式,需先转换为日期类型(比如STR_TO_DATE(date, '%Y/%m/%d')),确保排序逻辑正确
  3. 将上述SQL粘贴到Redash查询编辑器,选择对应数据源后直接运行即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:20:38