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

如何筛选10分钟时间窗口内失败存款次数≥5的用户?

修改SQL实现10分钟窗口内失败存款次数统计

核心修改仅需调整时间窗口的截断规则:把原SQL中两处DATE_TRUNC('hour', created)替换为DATE_TRUNC('10 minutes', created),即可将统计窗口从1小时改为10分钟。

修改后的完整SQL代码如下:

with windowed_data as
    (
    select *,
       max(window_count) over (partition by user_id, transaction_window) as max_window_count
from (select
          *,
          COUNT(*) OVER (PARTITION BY user_id, DATE_TRUNC('10 minutes', created)  ORDER BY created) AS window_count,
          DATE_TRUNC('10 minutes', created) AS transaction_window
      FROM source.payments2_transactions
      WHERE state = 'FAILED'
      and type = 'DEPOSIT'
      and country = 'PE'
      and created >= current_date - interval '120 days'
      and created < current_date + interval '1 day') wd)
select
    user_id,
    created,
    window_count,
    transaction_window,
    max_window_count
from windowed_data wd
where max_window_count >= 5;

补充说明

  • DATE_TRUNC('10 minutes', created)会将created字段的时间截断到最近的10分钟起始节点(如14:00、14:10、14:20),以此作为10分钟窗口的唯一标识。
  • 原SQL的统计逻辑(按用户+窗口分区计数、取窗口内最大失败次数并筛选≥5的记录)完全保留,仅调整了窗口的时间粒度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:09:55