首页 > 数据库技术 > 详细

SQL RANK、DENSE_RANK、NTILE

时间:2017-03-11 00:53:50      阅读:183      评论:0      收藏:0      [点我收藏+]

现有数据如下:

技术分享

技术分享
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条,依此类推

SQL RANK、DENSE_RANK、NTILE

原文:http://www.cnblogs.com/lao-tang/p/6533737.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!