Я пытаюсь создать SQL-запрос Teradata, который будет возвращать 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
Я попробовал что-то подобное ниже, но Teradata закричал, что «Упорядоченные аналитические функции не разрешены в предложении WHERE
» Я немного потянул за волосы, но не добился большого прогресса. Кто-нибудь видел это?
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
Заранее спасибо за помощь!