只有两个字段⽤⼀个sql语句查询出某个学⽣的姓名、成
绩以及在表中的排名
昨天去⾯试时遇到⼀个这样的问题:
有⼀张成绩表,只有两个字段,姓名和成绩。怎样⽤⼀个sql语句查询出某个学⽣的姓名,成绩以及在表中的排名?
⼀时间我也想不出具体实现,我就提了两种思路:⼀种是通过join关联⼀个查询出他排名的sql语句;⼀种是通过group by来实现。
回答得连⾃⼰都觉得有点⼼虚。请问⼤家如何实现呢?
假设:表名字为Course,两个字段分别为name和score
实现语句:
SELECT 学⽣,成绩,
(SELECT COUNT(*) FROM 表 WHERE a.成绩<=成绩) AS 排名
FROM 表 AS a
⽅法⼆:
declare @Course table(name varchar(100),cj int)
insert into @Course
select 'a',99
union all
select 'b',66sql语句怎么查询两张表的数据
union all
select 'c',88
select * from (
select (select 1+count(name) from @Course where cj>t.cj) mc,name,cj
from @Course t
) tem
where name='b'
如果有成绩相同的记录的时候,goodspeed的语句确实有⼀些瑕疵,但是我根据他的语句稍微修改了⼀下就很完美了。SELECT name,score,
(SELECT COUNT(*)+1 FROM course WHERE a.score<score) AS sort
FROM course AS a order by sort
更多请到这⾥查看
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论