У меня есть таблица с идентификаторами пользователей и журналами действий. И я хотел бы получить следующий результат:
+---------+------------+---------+
| user_id | action_id | row_num |
+---------+------------+---------+
| id1 | action 1 | 1 |
| id1 | action 1 | 2 |
| id1 | action 2 | 1 |
| id1 | action 3 | 1 |
| id2 | action 1 | 1 |
| id2 | action 2 | 1 |
| id2 | action 3 | 1 |
| id2 | action 3 | 2 |
| id2 | action 3 | 3 |
+---------+------------+---------+
Я почти уверен, что мне нужно использовать функцию ROW_NUMBER (), и я пытаюсь добиться этого, выполнив следующий код:
select user_id,
action_id,
row_number() over (partition by action_id order by user_id desc) as rn
from table
Но, похоже, я что-то упустил. Не могли бы вы помочь мне?
Я использую синтаксис Impala SQL.
Заранее спасибо.