我正在处理一些Web点击数据,只是在查找带有访问的user_id(按时间戳记)的最新page_name。使用以下代码,将重复user_id,并显示page_name,并以降序排列。但是,我只希望last_click总是=1。完成后的查询将用作较大查询中的子查询。
这是我当前的代码:
SELECT user_id, page_name, row_number() over(partition by session_id order by ts desc) as recent_click from clicks_data; user_id | page_name | recent_click --------+-------------+-------------- 0001 | login | 1 0001 | login | 2 0002 | home | 1
您应该能够将查询移至子查询并添加where条件:
where
SELECT user_id, page_name, recent_click FROM ( SELECT user_id, page_name, row_number() over (partition by session_id order by ts desc) as recent_click from clicks_data ) T WHERE recent_click = 1