只有两个字段用一个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

更多请到这里查看评论

相关文章

  • 详解SQL中Group By的使用教程

    详解SQL中Group By的使用教程

    这篇文章主要介绍了SQL中Group By的使用,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 详解数据库中跨库数据表的运算

    详解数据库中跨库数据表的运算

    跨库数据表,是指逻辑上同一张数据表被分别存储在不同数据库中。接下来通过本文给大家介绍数据库中跨库数据表的运算方法,感兴趣的朋友跟随小编一起看看吧
    2018-11-11
  • 数据库设计的完整性约束表现在哪些方面

    数据库设计的完整性约束表现在哪些方面

    数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的规范。数据库完整性由各式各样的完整性约束来确保,因而可以说数据库完整性规划即是数据库完整性约束的规划。那么,数据库设计的完整性约束表现哪些方面?
    2015-10-10
  • 连续序号的 sql语句

    连续序号的 sql语句

    连续序号的 sql语句,大家可以参考下,修改成自己的语句。
    2009-06-06
  • 数据库测试 实用技巧及测试方法

    数据库测试 实用技巧及测试方法

    软件应用程序已经离不开数据库。无论是在Web、桌面应用、客户端服务器、企业和个人业务,都需要数据库在后端操作。
    2011-07-07
  • sql语句中where 1=1的作用

    sql语句中where 1=1的作用

    在看程序时时,发现基本只要是拼凑的SQL语句,基本上都会这样写:
    2008-08-08
  • SQL的各种连接Join案例详解

    SQL的各种连接Join案例详解

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段,下面就为大家分享一下
    2020-09-09
  • Hadoop 2.x伪分布式环境搭建详细步骤

    Hadoop 2.x伪分布式环境搭建详细步骤

    这篇文章主要为大家详细介绍了Hadoop 2.x伪分布式环境搭建详细步骤,感兴趣的朋友可以参考一下
    2016-05-05
  • 聊聊Navicat统计的行数竟然和表实际行数不一致的问题

    聊聊Navicat统计的行数竟然和表实际行数不一致的问题

    Navicat作为数据库管理工具,在业界广受欢迎,这篇文章主要介绍了Navicat统计的行数竟然和表实际行数不一致的问题,需要的朋友可以参考下
    2021-12-12
  • 数据分析之ELT的基本概念

    数据分析之ELT的基本概念

    这篇文章主要介绍了数据分析之ELT的基本概念, ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,需要的朋友可以参考下
    2023-07-07

最新评论