簡體   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