資料來源
問題
。我得到了用戶的訪問資料,我試圖得到他們每個月的最后一次訪問,一直試圖用generate_series('2021-01-01'::timestamp, '2021-12-01'::timestamp, interval '1 month')連接資料源,但我得到的是每個月只有一個用戶,你們知道如何實作這一點嗎
預期的結果
我需要建議,我試圖為這個結果做子查詢,如果用戶沒有像下面的結果那樣回訪,就把他標記為保留,如果你們有更好的查詢來做這個,我會很感激的
uj5u.com熱心網友回復:
你可以使用cross join生成行。 然后你可以通過各種方式獲得最后一次訪問的資訊:
select u.user_id, gs.yyyymm, s.last_visit_date
from (select distinct user_id from source s) u cross join
generate_series('2021-01-01'/span>::timestamp, '2021-12-01'/span>: :timestamp, interval '1 month'.
) gs(yyyymm) left join lateral
(select max(s.visit_date) as last_visit_date
from source s
where s.user_id = u.user_id and
s.visit_date >=gs.yyyymm and
s.visit_date < gs.yyyymm interval '1個月'
) s
on 1=1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/306840.html
標籤:
上一篇:如何在BigQuery的最大日期條件下檢索表中的所有列?
下一篇:<p>我有一個函式,可以提取一個數值范圍(在一個字串內)的最小值或最小值,該函式在個別情況下似乎作業良好。 <p>然而,當我試圖在case_when()中使用它時,它的行為并不
