只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名

 更新时间:2014年08月17日 10:51:07   投稿:mdxy-dxy  
这篇文章主要介绍了只有两个字段用一个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',66 
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

更多请到这里查看评论

相关文章

  • 详解SQLite中的数据类型

    详解SQLite中的数据类型

    这篇文章主要介绍了详解SQLite中的数据类型,针对版本为SQLite3,讲解非常详细,超推荐!需要的朋友可以参考下
    2015-07-07
  • DBeaver复制数据库图文教程(数据库表结构以及内容)

    DBeaver复制数据库图文教程(数据库表结构以及内容)

    DBeaver提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,下面这篇文章主要给大家介绍了关于DBeaver复制数据库(数据库表结构以及内容)的相关资料,需要的朋友可以参考下
    2024-01-01
  • SQL 优化经验总结34条

    SQL 优化经验总结34条

    我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!
    2009-07-07
  • 14种SQL的进阶用法分享(更高效地处理数据)

    14种SQL的进阶用法分享(更高效地处理数据)

    在实际的数据库使用中除了CRUD还有很多高级应用值得学习和掌握,能够在平时的工作中得到很多便利,这篇文章主要给大家分享介绍了14种SQL的进阶用法,通过文中介绍的方法可以更高效地处理数据库数据,需要的朋友可以参考下
    2024-01-01
  • SQL select distinct的使用方法

    SQL select distinct的使用方法

    这篇文章主要介绍了SQL中distinct的用法 ,需要的朋友可以参考下
    2015-11-11
  • 在SQL Server和Oracle中创建job

    在SQL Server和Oracle中创建job

    有的时候,我们可能需要在数据库中设定一些自动执行的任务(job),以此来自动完成一些包括统计、备份方面的需求,下面就简单说明一下有关ms server和oracle两种数据库中如何新建自动任务。
    2009-06-06
  • 90%程序员面试会遇到的索引优化问题

    90%程序员面试会遇到的索引优化问题

    不管是用C/C++/Java等代码编写的程序,还是SQL编写的数据库脚本,都存在一个持续优化的过程。也就是说,代码优化对于程序员来说,是一个永恒的话题。下面这篇文章主要给大家总结介绍了90%程序员在面试的时候会遇到的索引优化问题,需要的朋友可以参考下。
    2017-11-11
  • 数据库 三范式最简单最易记的解释

    数据库 三范式最简单最易记的解释

    数据库 三范式最简单最易记的解释,整理一下方便大家记忆。
    2009-07-07
  • IntellJ Idea 2020版添加sqlite数据库的方法

    IntellJ Idea 2020版添加sqlite数据库的方法

    这篇文章主要介绍了IntellJ Idea 2020版添加sqlite数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 如何用分表存储来提高性能 推荐

    如何用分表存储来提高性能 推荐

    如何用分表存储来提高性能 ,需要的朋友可以参考下。
    2011-09-09

最新评论