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

如何用SQL查询用户金额首次达到100万的日期?

解决方案

针对你要查询每个用户首次金额达到100万日期的需求,这里提供两种实用的SQL方案,适配不同场景:

方法1:直接筛选达标记录取最早日期(简单高效)

如果你的表中每个用户每天至少有一条记录,直接筛选出所有金额≥100万的记录,再按用户分组取最早日期即可,用ROW_NUMBER()窗口函数实现:

SELECT user_id, date AS first_reach_date
FROM (
    SELECT 
        user_id,
        date,
        amount,
        -- 按用户分组,日期正序给达标记录编号
        ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY date) AS rn
    FROM your_table
    WHERE amount >= 1000000
) t
WHERE rn = 1;

方法2:用LAG函数判断首次突破(更严谨)

如果用户的记录不是连续每天都有,或者需要明确“首次达标前从未达到过100万”,可以用LAG函数获取上一条记录的金额,筛选出首次突破的日期:

SELECT user_id, date AS first_reach_date
FROM (
    SELECT 
        user_id,
        date,
        amount,
        -- 获取当前用户上一条记录的金额
        LAG(amount) OVER (PARTITION BY user_id ORDER BY date) AS prev_amount
    FROM your_table
) t
-- 筛选条件:当前金额达标,且上一条记录要么不存在(用户第一条记录),要么未达标
WHERE amount >= 1000000 
  AND (prev_amount IS NULL OR prev_amount < 1000000);

注意事项

  • 替换SQL中的your_table为实际表名
  • 确认金额单位是否为100万(即数值1000000),若单位不同需调整对应数值
  • 如果同一用户同一天有多条记录,可在ORDER BY后追加额外条件(比如ORDER BY date, amount DESC),确保取到当天符合需求的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:50:47