sql - Hive/Spark 重复密集排名 N 次
问题描述
我有一张桌子,我需要将等级/密集等级值重复 n 次。我看过一些帖子,其中编号由某个分区重新开始,但就我而言,我没有要分区的列。
我正在寻找这样的东西
这就是我目前拥有我的代码的方式
WITH d_rank_tbl AS(
SELECT
id,
1+ (dense_rank() over (order by id) - 1) % 10 as d_rank
FROM id_bucket)
SELECT
id,
dense_rank() over (partition by d_rank order by rand())
FROM d_rank_tbl
解决方案
那么算术呢?
select t.*,
floor((row_number() over (order by id) + 2) / 3) as d_rank
from id_bucket;
是+ 2
所以编号从而1
不是开始0
。
推荐阅读
- jpos - jpos:如何处理具有不同标头和不同长度的消息,侦听相同的端点并使用相同的打包器
- python - XML 到 DateFrame Python
- mysql - 具有不同列顺序和不同 WHERE 条件的 SELECT 返回的行数多于总行数
- ios - 提供的 API 密钥已过期(对于 Directions API)
- java - 在 IntelliJ Idea 中包装方法调用
- angular - 使用ngx-mask在angula8中输入数字后如何使用ctrl + Z清除所有值
- python - 如何获取图像的 ID
- excel - 如果列标题是特定文本,则替换列中的文本
- python - python为barplot中的条形分配不同的颜色
- javascript - 我如何检查输入是否是数组中的数字(任何数字)