You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用ROW_NUMBER()函数为用户动作日志生成分组行号?

实现按用户和动作分组的行号需求

嗨,你选对函数啦!ROW_NUMBER() 完全能搞定这个按用户+动作分组编号的需求,直接上具体的SQL语句:

SELECT 
    user_id,
    action_id,
    ROW_NUMBER() OVER (PARTITION BY user_id, action_id ORDER BY (SELECT NULL)) AS row_num
FROM 
    your_table_name;

关键部分解释:

  • PARTITION BY user_id, action_id:这一步是把数据按照用户ID和动作ID分成独立的分组,每个分组内会单独计算行号,比如id1的action1是一个组,id2的action3是另一个组。
  • ORDER BY (SELECT NULL):如果你的表没有明确的排序字段(比如动作发生的时间戳),用这个可以保持原表的行顺序;如果有类似action_time的字段,建议换成ORDER BY action_time,这样行号会按照动作发生的先后顺序生成,更符合业务逻辑。

拿你给出的结果举例子:

  • id1的action1有2条记录,分组后行号会生成1和2
  • id2的action3有3条记录,分组后行号会生成1、2、3
    完全匹配你想要的输出效果。

内容的提问来源于stack exchange,提问作者user6942825

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:59:17