【问题标题】:Hive/Spark Repeat Dense Rank N TimesHive/Spark 重复密集排名 N 次
【发布时间】:2021-02-05 15:36:57
【问题描述】:

我有一张桌子,我需要将等级/密集等级值重复 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

【问题讨论】:

    标签: sql apache-spark hive


    【解决方案1】:

    算术怎么样?

    select t.*,
           floor((row_number() over (order by id) + 2) / 3) as d_rank
    from id_bucket;
    

    + 2 是这样编号从1 开始而不是0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      相关资源
      最近更新 更多