impala - 第一个动作的行号
问题描述
我有一个包含用户 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_NUMBER() 函数,并尝试通过执行以下代码来实现这一点:
select user_id,
action_id,
row_number() over (partition by action_id order by user_id desc) as rn
from table
但似乎我错过了一些东西。你能帮帮我吗?我正在使用 Impala SQL 语法。
先感谢您。
解决方案
你很亲密。利用
row_number() over (partition by user_id,action_id order by action_id) as rn
推荐阅读
- scala - Scala/Spark - 将 Word2vec 输出转换为数据集[_]
- php - Laravel:使用 where 子句按 id 计算行数和分组
- flutter - 如何更新 AlertDialog 小部件中的 var?
- javascript - Node js获取正在上传的文件的名称
- kubernetes - 当 pod 卡在挂起状态时,我们可以在 statefulset 中为 pod 添加重启时间吗?
- c++ - 如何修复“clang: error: linker command failed with exit code 1 (use -v to see invocation)”错误?
- java - Spring Boot Embedded Keycloak 服务器抛出 NoSuchMethodError
- ssl - 无法使用 OpenSSL 加载私钥
- docker - 如何使用 Github 操作在不同文件夹中执行操作
- python - 极坐标/径向图表上的刻度标签填充和刻度标签位置 - matplotlib