班级ID 姓名 分数
2 张三 88
4 李四 68
3 张六 84
4 张二 54
2 张一 85 如上三个班级的学生成绩score,如何分别对三个班级排名,并在结果中显示三个班级内的排名情况呢?Select *,名次=(select count(分数) from score where 分数>x.分数 )+1 from score x
我查询不出来
2 张三 88
4 李四 68
3 张六 84
4 张二 54
2 张一 85 如上三个班级的学生成绩score,如何分别对三个班级排名,并在结果中显示三个班级内的排名情况呢?Select *,名次=(select count(分数) from score where 分数>x.分数 )+1 from score x
我查询不出来
解决方案 »
- 自定义函数的问题
- 如何将表中字段值转换为表名
- sql语句 对票入座
- 求一条 sql 在线等 马上结
- 这里的朋友,请帮帮忙,关于(会计期)应付帐款计算的问题,偶不会.
- 重復數據中找出時間最小的一筆記錄
- 为什么我用第1种方法直接执行查询是显示√,而用第2种方法去显示'v'呢?
- help me 我快疯了。。。。。
- sql分类统计
- 假如一个SQL Server服务器的身份验证采用"仅Windows",那么这台数据库服务器能被远程访问吗?
- 紧急~~~
- 关于两个表中的数据复制问题,用有A和B两个表,A中有AA列,B中有BB列,用update语句将BB列的前50条内容复制到AA列中的时候,为什么是同一条内容复制了50次?
INSERT @TB
SELECT 2, N'张三', 88 UNION ALL
SELECT 4, N'李四', 68 UNION ALL
SELECT 3, N'张六', 84 UNION ALL
SELECT 4, N'张二', 54 UNION ALL
SELECT 2, N'张一', 85SELECT *,PM=(SELECT COUNT(*) FROM @TB WHERE CID=A.CID AND SC<=A.SC)
FROM @TB AS A
ORDER BY CID,PM
/*
CID NAME SC PM
----------- ---- ----------- -----------
2 张一 85 1
2 张三 88 2
3 张六 84 1
4 张二 54 1
4 李四 68 2
*/
DECLARE @TB TABLE(CID INT, NAME NVARCHAR(4), SC INT)
INSERT @TB
SELECT 2, N'张三', 88 UNION ALL
SELECT 4, N'李四', 68 UNION ALL
SELECT 3, N'张六', 84 UNION ALL
SELECT 4, N'张二', 54 UNION ALL
SELECT 2, N'张一', 85SELECT *,PM=(SELECT COUNT(*) FROM @TB WHERE CID=A.CID AND SC>=A.SC)
FROM @TB AS A
ORDER BY CID,PM
/*
CID NAME SC PM
----------- ---- ----------- -----------
2 张三 88 1
2 张一 85 2
3 张六 84 1
4 李四 68 1
4 张二 54 2
*/
(
班级ID int,
姓名 nvarchar(20),
分数 int
)
insert into #t1
select
2 , '张三' , 88 union all
select
4 , '李四', 68 union all
select
3 , '张六', 84 union all
select
4 , '张二' , 54 union all
select
2 , '张一', 85
select 班级ID,姓名,分数,ROW_NUMBER()over(partition by 班级ID order by 分数 desc) 排名 from #t1