现在的位置: 首页 > 综合 > 正文

MS-SQLServer over partition by的使用

2013年09月15日 ⁄ 综合 ⁄ 共 399字 ⁄ 字号 评论关闭

  临下班时一个朋友问我一个问题,他想实现一个分组后统计的功能,比如一Class列为GroupBy对象,检索之后希望能对这个分组结果再来个统计,知道一下输入各个Class的Record各有多少条,如下图所示(环境:MSSQL-2008):

坦白的说,以前真没搞过这样的示例,但想到用ROW_NUMBER函数,别的不太了解,就自己查资料试了试,还真给弄出来了。今天有闲,把这个记下来。

SQL语句:

Select Top 10
  b.Class, RowCnt = ROW_NUMBER() OVER(PARTITION BY b.Class ORDER BY Id ASC)

From Info a,Candidate b
Where  a.Id = b.Id

这个SQL没什么好解释的,唯一想提醒的是PARTITION
BY的对象是想分组的那列。

注释:

row_number() over(partition by ... order by ...)

:分组排序功能

抱歉!评论已关闭.