繁体   English   中英

Bigquery/ SQL:同一组中的序列

[英]Bigquery/ SQL: sequence in same group

我有一个关于使用 sql 查找两种页面类型之间的序列的问题:

我们拥有的样本数据:

会话ID 页面类型
123 帐户
123 生的
123 plp
123 pdp
123 帐户
123 plp
123 样本
123 pdp
123 plp
123 pdp
123 生的

理想情况下,output 如下所示,仅包含在 plp 之后单击 pdp 时的记录

会话ID 页面类型
123 plp
123 pdp
123 plp
123 pdp

为了根据订单进行操作 - 你必须有一些东西要订购
通常是时间戳列或 position 或其他

我假设你有一个(在我的示例中,我将使用 ts 列)

在此处输入图像描述

考虑下面的方法来获得你想要的

select * from your_table
qualify (lag(page_type) over win = 'plp' and page_type = 'pdp')
or (lead(page_type) over win = 'pdp' and page_type = 'plp')
window win as (partition by sessionId order by ts)

与 output

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM