zoukankan      html  css  js  c++  java
  • SQL RANK、DENSE_RANK、NTILE

    现有数据如下:

    1 SELECT 
    2     *, 
    3     ROW_NUMBER() OVER (ORDER BY 科目) AS 'Row Number', 
    4     RANK() OVER (ORDER BY 科目) AS 'Rank',
    5     DENSE_RANK() OVER (ORDER BY 科目) AS 'Dense Rank',
    6     NTILE(4) OVER (ORDER BY 科目) 'NTILE'
    7  FROM Table_A
    View Code

    RANK:如果多个行具有相同的顺序值(比如 都为化学),则允许这些行具有相同的值(比如:化学的都为1,数学的都2),计数以具有相同值的行为单位从1开始连续计数,例如 化学有6行(都为1),到了数学虽然有了6行化学 但数学还是从2开始计数。

    DENSE_RANK:仍然是具有相同顺序值就具有相同值,但排名始终是递增的; 例如 化学都为1  到了数学  因为前面有了6行数学 所以数学的 都是7

    NTILE(X): 将总的结果划分为X个类别,从1--X开始对这些类别排名;因此,NTILE(4) 就是将结果分为4组,假设查询结果为100条数据,则会将这100条数据分成4组每组25条数据。上面数据有21条分为4组,则第一组为6条,依此类推

  • 相关阅读:
    关于博客
    latex句首缩进空格
    javable 之Iterable
    javable之Comparable
    常量池与Integer和String的“==”
    静态多态与动态多态
    String和StringBuilder效率不同的原理
    equals和hashcode
    Eclipse里面使用checkstyle(Google style)
    矩阵链乘问题
  • 原文地址:https://www.cnblogs.com/lao-tang/p/6533737.html
Copyright © 2011-2022 走看看