我有一个包含用户ID和操作日志的表。我想得到以下结果:
+---------+------------+---------+
| 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\u number()函数,并尝试通过执行以下代码来实现这一点:
select user_id,
action_id,
row_number() over (partition by action_id order by user_id desc) as rn
from table
但我好像错过了什么。你能帮帮我吗?我使用的是impalasql语法。
先谢谢你。
2条答案
按热度按时间q7solyqu1#
你很接近。使用
mrfwxfqh2#
首次使用
action_id
而是在order by
条款:第二,您没有指定
action_id
在分割子句中