用一条sql语句进行排序好的每十条记录分组
现在有一个学生分数表,要进行分组.
表是
成绩(学号,成绩)
学号 成绩
001 20
002 40
003 30
004 50
005 55
006 80
007 65
008 75
009 48
010 65
011 78
要进行成绩,学号排序后的每十条分组
学号 成绩 分组
001 20 1
003 30 1
002 40 1
009 48 1
004 50 1
005 55 1
007 65 1
010 65 1
008 75 1
011 78 1
006 80 2
------解决方案----------------------> 测试数据:[成绩]
if object_id('[成绩]') is not null drop table [成绩]
GO
create table [成绩]([学号] varchar(3),[成绩] int)
insert [成绩]
select '001',20 union all
select '002',40 union all
select '003',30 union all
select '004',50 union all
select '005',55 union all
select '006',80 union all
select '007',65 union all
select '008',75 union all
select '009',48 union all
select '010',65 union all
select '011',78
select *,分组=(ROW_NUMBER() OVER(ORDER BY [学号])-1)/10+1 from [成绩]
/*
学号 成绩 分组
---- ----------- --------------------
001 20 1
002 40 1
003 30 1
004 50 1
005 55 1
006 80 1
007 65 1
008 75 1
009 48 1
010 65 1
011 78 2
(11 行受影响)
*/
drop table [成绩]
------解决方案------------------------------------------------
-- Author :TravyLee(物是人非事事休,欲语泪先流!)
-- Date :2012-12-11 09:08:26
-- Version:
-- Microsoft SQL Server 2012 - 11.0.2100.60 (Intel X86)
-- Feb 10 2012 19:13:17
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
-----------