• 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条,依此类推

  • 相关阅读:
    BZOJ4346 : [POI2016]Nadajniki
    BZOJ4345 : [POI2016]Korale
    BZOJ4134 : ljw和lzr的hack比赛
    BZOJ4342 : CF348 Pilgrims
    BZOJ2310 : ParkII
    BZOJ3322 : [Scoi2013]摩托车交易
    BZOJ1444 : [Jsoi2009]有趣的游戏
    Xcode8中处理打印日志的配置
    iOS开发之记录用户登录状态
    热修复
  • 原文地址:https://www.cnblogs.com/lao-tang/p/6533737.html
Copyright © 2020-2023  润新知