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

如何用SQL查询累计交易额达到阈值的日期?

用SQL查询累计交易额达到指定值的日期

给定数据表:

dayamount
110
220
330

要找到累计交易额首次达到30的日期(示例中为第2天),确实可以用窗口函数实现,具体步骤如下:

1. 计算每日累计交易额

使用SUM()窗口函数,按日期顺序累加交易额,得到每天的累计值:

SELECT 
    day,
    amount,
    SUM(amount) OVER (ORDER BY day) AS cumulative_amount
FROM your_table_name;

执行后会得到:

dayamountcumulative_amount
11010
22030
33060

2. 筛选并获取目标日期

基于上面的结果,筛选出累计值≥30的记录,再取最小的日期即可:

SELECT MIN(day) AS target_day
FROM (
    SELECT 
        day,
        SUM(amount) OVER (ORDER BY day) AS cumulative_amount
    FROM your_table_name
) AS cumulative_data
WHERE cumulative_amount >= 30;

如果需要同时查看当天的交易额和累计值,可以用LIMIT 1直接取第一条满足条件的记录:

SELECT day, amount, cumulative_amount
FROM (
    SELECT 
        day,
        amount,
        SUM(amount) OVER (ORDER BY day) AS cumulative_amount
    FROM your_table_name
) AS cumulative_data
WHERE cumulative_amount >= 30
ORDER BY day
LIMIT 1;

说明

  • SUM(amount) OVER (ORDER BY day)是核心:窗口函数按day升序排列,对每行及之前的所有amount求和,得到累计交易额。
  • 替换your_table_name为实际的数据表名称即可运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:22:08