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

如何在MySQL中查询累计金额首次超过指定值的第一条记录

MySQL查询实现方案

方案1:MySQL 8.0+(窗口函数实现,推荐)

SELECT ID, Amount, Date
FROM (
    SELECT 
        ID,
        Amount,
        Date,
        SUM(Amount) OVER (ORDER BY Date ASC) AS cumulative_amount
    FROM 你的表名 -- 替换为实际数据表名称
) AS temp
WHERE cumulative_amount >= 目标金额 -- 替换为你要查询的指定数值
ORDER BY Date ASC
LIMIT 1;

方案2:MySQL 5.x(用户变量实现,兼容低版本)

SELECT ID, Amount, Date
FROM (
    SELECT 
        ID,
        Amount,
        Date,
        @cumulative := @cumulative + Amount AS cumulative_amount
    FROM 你的表名, (SELECT @cumulative := 0) AS init -- 替换为实际数据表名称
    ORDER BY Date ASC
) AS temp
WHERE cumulative_amount >= 目标金额 -- 替换为你要查询的指定数值
ORDER BY Date ASC
LIMIT 1;

逻辑说明

  1. 内层查询先按日期升序排序,逐行累加Amount得到累计金额
  2. 外层筛选出累计金额大于等于指定数值的所有记录
  3. 按日期升序排序后取第一条,就是累计金额首次超过指定数值的对应记录,完全匹配给出的规则示例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:48:02