我正在尝试创建一个 Teradata SQL 查询,该查询将为每个用户返回第n个按时间顺序排列的访问日期。例如,
user | visit_date
---------------------
a 1/1
b 1/10
c 1/20
a 1/3
a 1/4
b 1/5
c 1/15
b 1/9
> magic_query_for_Second_visit;
user | second
------------------
a 1/3
b 1/9
c 1/20
WHERE
我尝试了类似下面的方法,但 Teradata 尖叫“子句中不允许使用有序分析函数”。我已经拉了一段时间的头发,但没有取得太大进展。有人见过这个吗?
select user,
row_number() over (partition by user order by visit_date desc) as rnum
from visitstable
where rnum = 2
如果我排除了,where
那么我的结果看起来很有希望......我只是无法提取我需要的东西!
user | visit_date | rnum
---------------------------
a 1/1 1
a 1/3 2
a 1/4 3
b 1/5 1
b 1/9 2
b 1/10 3
c 1/15 1
c 1/20 2
在此先感谢您的帮助!