您的位置:首页 > 数据库

MS-SQLServer over partition by的使用

2010-04-16 14:55 477 查看
临下班时一个朋友问我一个问题,他想实现一个分组后统计的功能,比如一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 ...)

:分组排序功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: