我正在处理一些网络点击数据,我只是在寻找带有访问过的user_id的最新page_name(通过时间戳).使用下面的代码,重复user_id并显示page_name,并按降序排序.但是,我只想使用recent_click always = 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
Run Code Online (Sandbox Code Playgroud)
sge*_*des 17
您应该能够将查询移动到子查询并添加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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44993 次 |
| 最近记录: |