SQL Server 2008 介绍大家一个有趣的函数NTILE 40magician547]

发布时间:2016-12-11 16:12:42 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"SQL Server 2008 介绍大家一个有趣的函数NTILE 40magician547]",主要涉及到SQL Server 2008 介绍大家一个有趣的函数NTILE 40magician547]方面的内容,对于SQL Server 2008 介绍大家一个有趣的函数NTILE 40magician547]感兴趣的同学可以参考一下。

通常有这样的需求,需要将数据按照某一字段分组,比如按成绩排列,将前25%为优秀,25%到50%有良好,50%到75%为差,75%到100%为不及格的情况。像这样需要将一个有序整体按照一定的比例划分数据的情况下,直接使用NTILE函数可以起到事半功倍的效果。NTILE(num)Num为要等分的数量 如 --NTILE分类函数   IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')   BEGIN       DROP TABLE tba   END   GO   CREATE TABLE tba   (       ID INT IDENTITY(1,1) NOT NULL,       Total INT   )   GO   INSERT INTO tba   SELECT '100' UNION   SELECT '101' UNION   SELECT '102' UNION   SELECT '103' UNION   SELECT '104' UNION   SELECT '105' UNION   SELECT '106' UNION   SELECT '107' UNION   SELECT '108' UNION   SELECT '109' UNION   SELECT '110'   GO   SELECT  ID,           Total,           CASE NTILE(4) OVER (ORDER BY Total DESC)            WHEN 1 THEN '25%'           WHEN 2 THEN '25%-50%'           WHEN 3 THEN '50%-75%'           WHEN 4 THEN '75%-100%' END AS Level   FROM tba      /*   ID  Total   Level   11  110 25%   10  109 25%   9   108 25%   8   107 25%-50%   7   106 25%-50%   6   105 25%-50%   5   104 50%-75%   4   103 50%-75%   3   102 50%-75%   2   101 75%-100%   1   100 75%-100%   */  这样比直接用SQL语句写要方便得多。

该回复于2012-10-16 16:37:02被版主删除

4个排名函数row_number用的最多 NTILE用的最少,偶尔用了都忘记怎么拼了

站板凳

xxxx,阿汤哥不厚道

引用 3 楼  的回复:站板凳 人品比你好点

NTILE对不知道要取多少个组的时候有点困难

该回复于2012-10-16 16:55:44被版主删除

这个排名函数我也很少用,谢谢楼主分享!

回一个看看 

引用 8 楼  的回复:这个排名函数我也很少用,谢谢楼主分享! 我也是很少用,今天偶尔想起来了,就提醒下,呵呵。

引用 6 楼  的回复:NTILE对不知道要取多少个组的时候有点困难 本来排名函数就没有万能的,这个只是把某一类的情况封装了一下下而已,复杂的还得加点逻辑进去的。

谢谢分享

NTILE函数很少用到 呵呵

谢谢分享,菜鸟多多学习

后排坐。。。

受教了,谢谢分享..

没明白LZ是啥意思呢?

上一篇:SQL字符串字段内的字符排序 20chinaboykai]
下一篇:或许你觉得这样的方式读取数据库会更快一些 30my_only]

相关文章

相关评论