WEB开发网
开发学院数据库MSSQL Server SQL Server 2005学习总结:排名函数 阅读

SQL Server 2005学习总结:排名函数

 2008-08-30 09:57:02 来源:WEB开发网   
核心提示: 例如,如果总行数为 50,SQL Server 2005学习总结:排名函数(2),有五个组,则每组将包含 10 行,并列,排名连续--NTILE()是按qty由小到大分成3组逐一排名,--演示例题,建一个tablecreatetablerankorder(orderidint,qtyint

例如,如果总行数为 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

Tags:SQL Server 学习

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接