34,576
社区成员
发帖
与我相关
我的任务
分享
SELECT DISTINCT C.学号
FROM dbo.TB AS B
CROSS APPLY ( SELECT TOP ( 1 )
A.学号
FROM TB A
WHERE A.班级 = B.班级
ORDER BY 班级,成绩 desc ) AS C
/*
3
5*/
;WITH S AS
(
SELECT 学号,班级,成绩,row_number() over(partition by 班级 order by 成绩 desc) AS R
FROM [表名]
)
SELECT 学号,班级,成绩
FROM S
WHERE R=1
create table t
(
学号 int,
班级 int,
成绩 int
)
insert into t
select 1 , 1 , 70 union all
select 2 , 1 , 71 union all
select 3 , 1 , 72 union all
select 4 , 2 , 73 union all
select 5 , 2 , 75 union all
select 6 , 2 , 75
select 学号
from
(
select *,
ROW_NUMBER() over(partition by 班级 order by 成绩 desc) as rownum
from t
)a
where rownum = 1
/*
学号
3
5
*/
select 学号,班级,成绩
from (select 学号,班级,成绩,
row_number() over(partition by 班级 order by 成绩 desc) 'rn'
from [表名]) t
where rn=1
select 学号
from
(
select *,
ROW_NUMBER() over(partition by 班级 order by 成绩 desc) as rownum
from t
)a
where rownum = 1