【问题标题】:Can I order by rank or dense rank in ntile function?我可以在 ntile 函数中按等级或密集等级排序吗?
【发布时间】:2015-08-25 22:35:57
【问题描述】:

我正在寻求一些帮助,以了解我是否可以在 ntile 查询中使用排名/密集排名函数。

我已经编写了以下代码:

NTILE(5) OVER (PARTITION BY JOB_TYPE ORDER BY SCORE DESC) AS M_NTILE
,DENSE_RANK() OVER (PARTITION BY MONTH_ENDING, JOB_TYPE ORDER BY M_NTILE DESC) AS RANK

但我想要做的不是按分数排序,而是按排名查询中的结果排序。

这可能吗?如果有人可以请建议将非常感激。

【问题讨论】:

    标签: sql oracle rank dense-rank


    【解决方案1】:

    您需要使用子查询:

    select t.*,
           DENSE_RANK() OVER (PARTITION BY MONTH_ENDING, JOB_TYPE
                              ORDER BY M_NTILE DESC) AS RANK
    from (select . . .,
                 NTILE(5) OVER (PARTITION BY JOB_TYPE ORDER BY SCORE DESC) AS M_NTILE
          . . .
          ) t 
    

    但是,这似乎真的没有必要。为什么不直接使用score

    select t.*,
           DENSE_RANK() OVER (PARTITION BY MONTH_ENDING, JOB_TYPE
                              ORDER BY SCORE DESC) AS RANK
    

    【讨论】:

    • 您好,感谢您的回复,将尝试一下,看看我的进展如何。
    猜你喜欢
    • 2017-03-16
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多