实例数据对比SQL中的ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(),一目了然
来源:互联网 发布:android 源码目录结构 编辑:程序博客网 时间:2024/05/13 15:52
01 USE TestDB
02
03 IF OBJECT_ID('t_Test', 'U') IS NOT NULL
04 DROP TABLE t_Test
05 CREATE TABLE t_Test
06 (
07 [id] INT UNIQUE
08 NOT NULL,
09 [name] NVARCHAR(20),
10 [grade] DECIMAL(8, 2),
11 ) ;
12 INSERT INTO [t_Test]
13 VALUES ( 1, N'一班', 100.0 ),
14 ( 2, N'二班', 90.5 ),
15 ( 3, N'一班', 90.5 ),
16 ( 4, N'二班', 70.0 ),
17 ( 5, N'二班', 55.5 ) ,
18 ( 6, N'三班', 95.0 ),
19 ( 7, N'一班', 90.5 ),
20 ( 8, N'二班', 80.0 ),
21 ( 9, N'二班', 80.0 ),
22 ( 10, N'三班', 90.0 ),
23 ( 11, N'二班', 100.0 ),
24 ( 12, N'一班', 85.0 ) ;
25
26 SELECT *,
27 [ROW_NUMBER()] = ROW_NUMBER() OVER ( PARTITION BY [name] ORDER BY [grade] ),
28 [RANK()] = RANK() OVER ( PARTITION BY [name] ORDER BY [grade] ),
29 [DENSE_RANK()] = DENSE_RANK() OVER ( PARTITION BY [name] ORDER BY [grade] ),
30 [NTILE()] = NTILE(4) OVER ( PARTITION BY [name] ORDER BY [grade] )
31 FROM t_Test ;
32
33
34
35 DROP TABLE t_Test ;
36
37 /*
38 (12 行受影响)
39 id name grade ROW_NUMBER() RANK() DENSE_RANK() NTILE()
40 ----------- -------------------- --------------------------------------- -------------------- -------------------- -------------------- --------------------
41 5 二班 55.50 1 1 1 1
42 4 二班 70.00 2 2 2 1
43 8 二班 80.00 3 3 3 2
44 9 二班 80.00 4 3 3 2
45 2 二班 90.50 5 5 4 3
46 11 二班 100.00 6 6 5 4
47 10 三班 90.00 1 1 1 1
48 6 三班 95.00 2 2 2 2
49 12 一班 85.00 1 1 1 1
50 7 一班 90.50 2 2 2 2
51 3 一班 90.50 3 2 2 3
52 1 一班 100.00 4 4 3 4
53
54 (12 行受影响)
55
56 */
02
03 IF OBJECT_ID('t_Test', 'U') IS NOT NULL
04 DROP TABLE t_Test
05 CREATE TABLE t_Test
06 (
07 [id] INT UNIQUE
08 NOT NULL,
09 [name] NVARCHAR(20),
10 [grade] DECIMAL(8, 2),
11 ) ;
12 INSERT INTO [t_Test]
13 VALUES ( 1, N'一班', 100.0 ),
14 ( 2, N'二班', 90.5 ),
15 ( 3, N'一班', 90.5 ),
16 ( 4, N'二班', 70.0 ),
17 ( 5, N'二班', 55.5 ) ,
18 ( 6, N'三班', 95.0 ),
19 ( 7, N'一班', 90.5 ),
20 ( 8, N'二班', 80.0 ),
21 ( 9, N'二班', 80.0 ),
22 ( 10, N'三班', 90.0 ),
23 ( 11, N'二班', 100.0 ),
24 ( 12, N'一班', 85.0 ) ;
25
26 SELECT *,
27 [ROW_NUMBER()] = ROW_NUMBER() OVER ( PARTITION BY [name] ORDER BY [grade] ),
28 [RANK()] = RANK() OVER ( PARTITION BY [name] ORDER BY [grade] ),
29 [DENSE_RANK()] = DENSE_RANK() OVER ( PARTITION BY [name] ORDER BY [grade] ),
30 [NTILE()] = NTILE(4) OVER ( PARTITION BY [name] ORDER BY [grade] )
31 FROM t_Test ;
32
33
34
35 DROP TABLE t_Test ;
36
37 /*
38 (12 行受影响)
39 id name grade ROW_NUMBER() RANK() DENSE_RANK() NTILE()
40 ----------- -------------------- --------------------------------------- -------------------- -------------------- -------------------- --------------------
41 5 二班 55.50 1 1 1 1
42 4 二班 70.00 2 2 2 1
43 8 二班 80.00 3 3 3 2
44 9 二班 80.00 4 3 3 2
45 2 二班 90.50 5 5 4 3
46 11 二班 100.00 6 6 5 4
47 10 三班 90.00 1 1 1 1
48 6 三班 95.00 2 2 2 2
49 12 一班 85.00 1 1 1 1
50 7 一班 90.50 2 2 2 2
51 3 一班 90.50 3 2 2 3
52 1 一班 100.00 4 4 3 4
53
54 (12 行受影响)
55
56 */
- 实例数据对比SQL中的ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(),一目了然
- RANK() ,ROW_NUMBER(),DENSE_RANK( ),ntile( )
- row_number rank dense_rank ntile
- 关于sql row_number,rank,dense_rank,ntile函数
- SQL排序 RANK/DENSE_RANK/ROW_NUMBER/NTILE
- SQL 序号列ROW_NUMBER,RANK,DENSE_RANK、NTILE
- SQL Server 排名函数(row_number,rank,dense_rank,ntile)实例,详解
- Sql Server2005 4个排名函数: RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE()
- SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER
- sql server 排名函数 row_number,rank,dense_rank和ntile
- SQL SERVER 排序函数ROW_NUMBER、RANK、DENSE_RANK、NTILE
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- ROW_NUMBER、RANK、DENSE_RANK、NTILE的用法
- row_number、rank、dense_rank和ntile的比较
- MSSQL 排序函数 ROW_NUMBER() RANK() DENSE_RANK() NTILE()
- SQLSERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER
- Tomcat连接池配置
- 图像数组转换及图像类型转换相关函数
- WAP技术入门
- SQL操作全集
- NetBeans 6.X 装插件支持struts2.x的开发
- 实例数据对比SQL中的ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(),一目了然
- MSDN的目录
- SQLSERVER存储过程解密
- 初学ZEND
- 2008-3-25号发布的PL/SQL Developer 7.1.5版本,存在几个严重BUG
- HttpApplication事件执行顺序
- Windows mobile下文件关联程序
- no subject
- hibernate下载地址