SQL Server 2005学习总结:排名函数
2008-08-30 09:57:02 来源:WEB开发网例如,如果总行数为 50,有五个组,则每组将包含 10 行。
--演示例题,建一个table
createtablerankorder(
orderidint,
qtyint
)
go
--插入数据
insertrankordervalues(30,10)
insertrankordervalues(10,10)
insertrankordervalues(80,10)
insertrankordervalues(40,10)
insertrankordervalues(30,15)
insertrankordervalues(30,20)
insertrankordervalues(22,20)
insertrankordervalues(21,20)
insertrankordervalues(10,30)
insertrankordervalues(30,30)
insertrankordervalues(40,40)
go
--查询出各类排名
SELECTorderid,qty,
ROW_NUMBER()OVER(ORDERBYqty)ASrownumber,
RANK()OVER(ORDERBYqty)AS[rank],
DENSE_RANK()OVER(ORDERBYqty)ASdenserank,
NTILE(3)OVER(ORDERBYqty)AS[NTILE]
FROMrankorder
ORDERBYqty
--结果
--ROW_NUMBER()是按qty由小到大逐一排名,不并列,排名连续
--RANK()是按qty由小到大逐一排名,并列,排名不连续
--DENSE_RANK()是按qty由小到大逐一排名,并列,排名连续
--NTILE()是按qty由小到大分成3组逐一排名,并列,排名连续
orderidqtyrownumberrankdenserankNTILE
30101111
10102111
80103111
40104111
30155522
30206632
22207632
21208632
10309943
303010943
4040111153
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接