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

如何用SQL找出同一Session中plp紧随pdp的页面访问序列

SQL查找同一Session下pdp紧随plp的访问记录

问题描述

需要从页面访问数据中,筛选出同一SessionID内plp页面之后紧跟pdp页面的两组连续记录(即对应的plp和pdp条目)。

样例输入数据

SessionIDPage Type
123account
123raw
123plp
123pdp
123account
123plp
123sample
123pdp
123plp
123pdp
123raw

期望输出

SessionIDPage Type
123plp
123pdp
123plp
123pdp

解决方案

利用SQL窗口函数LEAD()和LAG()识别连续的页面访问序列,筛选出符合条件的记录。

示例SQL代码

假设数据表名为page_visits,若有访问时间字段(如visit_time),请替换排序条件中的(SELECT NULL)以保证访问顺序准确:

WITH session_visit_seq AS (
    SELECT 
        SessionID,
        `Page Type`,
        -- 获取当前页面的下一个页面
        LEAD(`Page Type`) OVER (PARTITION BY SessionID ORDER BY (SELECT NULL)) AS next_page,
        -- 获取当前页面的上一个页面
        LAG(`Page Type`) OVER (PARTITION BY SessionID ORDER BY (SELECT NULL)) AS prev_page
    FROM page_visits
)
SELECT SessionID, `Page Type`
FROM session_visit_seq
WHERE 
    -- 筛选plp且下一个页面是pdp的记录
    (`Page Type` = 'plp' AND next_page = 'pdp')
    -- 同时筛选pdp且上一个页面是plp的记录
    OR (`Page Type` = 'pdp' AND prev_page = 'plp')
ORDER BY SessionID;

说明

  • PARTITION BY SessionID确保只在同一个会话内分析页面序列
  • ORDER BY子句必须基于实际的访问顺序字段(如时间戳),避免因数据库存储顺序导致的错误
  • 最终结果会按会话ID排序,保留原访问顺序中的连续plp-pdp对

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:35:32