快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

皇马国际app:在SQL Server20052008中对记录进行分组,并获得每组前N条记录



假设有一个表,SQL语句如下:

CREATE TABLE [dbo].[scan](

[km] [int] NULL,

[kh] [int] NULL,

[cj] [int]皇马国际app NU皇马国际appLL

) ON [PRIMARY]

此中km为科目号、kh为考生号、cj为成就,现对km和kh进行分组,并得到每组前2笔记录(按cj从高到低排序)。基础思惟是为每组加一个序号列,再用where取序号小于即是2的。SQL语句如下:

select * from

(

select a.km,a.kh,cj,row_number() 皇马国际appover(partition by a.km 皇马国际appord皇马国际apper by a.km,a.cj desc) n

from

(select km,kh,SUM(cj) cj from scan group by km,kh) a

) b where n

着末获得的结果集如下图所示。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: