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

BigQuery窗口函数Rank使用问题:如何生成符合预期的rank_2字段

BigQuery 排名字段rank_2实现方案

已实现逻辑回顾

你已通过dense_rank()窗口函数生成了rank1,逻辑为按user_id分组,先按product_id排序、再按timestamp_added倒序排序的不间隙排名。

dense_rank() over (partition by user_id order by product_id,timestamp_added desc) as rank1

rank_2实现方案

从你给出的样例可判断rank_2的规则为:同一用户、同一产品的分组内,为每条记录生成连续不重复的序号,即使排序依据的时间戳完全一致也会分配不同排名,直接使用row_number()窗口函数即可实现:

row_number() over (partition by user_id, product_id order by timestamp_added desc) as rank_2

逻辑验证

针对你给出的样例数据,上述代码计算结果和你期望的rank_2值完全匹配:

  • 用户10、产品100的2条记录被分到同一组,时间戳一致时row_number()自动分配1、2两个连续序号
  • 用户10、产品200的1条记录单独分组,序号为1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:39:04