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

如何在Standard SQL窗口函数中添加时间约束,确保fs_mp事件早于add_to_cart

修改查询以校验fs_mp_%事件早于add_to_cart事件

以下是调整后的Standard SQL查询,新增了基于server_timestamp的时间顺序校验逻辑:

SELECT *
FROM base_query
WHERE
    (
        event_page_type = "product"
        AND (
            -- Monthly price feature
            event_name LIKE "fs_mp_%"
            -- Add to cart events
            OR event_name = "add_to_cart"
        )
    )
QUALIFY 
    -- 保留所有fs_mp_%类事件
    event_name LIKE "fs_mp_%"
    OR 
    -- 仅保留同会话中存在更早fs_mp_%事件的add_to_cart事件
    (
        event_name = "add_to_cart"
        AND server_timestamp >= MIN(IF(event_name LIKE "fs_mp_%", server_timestamp, NULL)) OVER (PARTITION BY session_id)
    )

逻辑说明

  1. 保留fs_mp_%事件:所有这类事件直接通过校验,无需额外时间判断,符合需求。
  2. 过滤add_to_cart事件:
    • 用窗口函数MIN(IF(event_name LIKE "fs_mp_%", server_timestamp, NULL)) OVER (PARTITION BY session_id)算出当前会话里最早发生的fs_mp_%事件时间;如果会话中没有这类事件,该值为NULL,对应的add_to_cart事件会被过滤。
    • 只有当add_to_cart事件的server_timestamp晚于或等于会话中最早的fs_mp_%事件时间时,才会被保留——这就确保了该会话中确实有fs_mp_%事件发生在add_to_cart之前。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:11:20