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

更多请到这里查看评论

IT人知识库 原文地址:http://www.itpeo.net/12848/431586.html





rfedfre

Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置

Hadoop是Java写的,他无法使用Linux预安装的OpenJDK,因此安装hadoop前需要先安装JDK(1.6以... ...

rfedfre

Hadoop2.X/YARN环境搭建--CentOS7.0系统配置

一、我缘何选择CentOS7.0     14年7月7日17:39:42发布了CentOS... ...

rfedfre

PostgreSQL数据库服务端监听设置及客户端连接方法教程

众所周知,PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),是一个可以免费使用的开放源代码数据... ...

在telnet下操作memcache详解(操作命令详解)

在定位问题、测试等时候经常需要对memcache的数据进行一些操作,但是其本身没有自带的客户端,所以只能通过telnet... ...

8种主流NoSQL数据库系统特性对比和最佳应用场景

曾在多家大公司任职的软件架构师兼顾问Kristóf Kovács在博客中对主流的NoSQL数据库(Cassandra、M... ...

sql学习之CASE WHEN THEN ELSE END的用法

超强:SQL命令中的case...when...then...else...end条件查询(不同于where) 与 类型... ...

SQL语句学习

(高手就不要笑话了^_^)。 好了,其他的不说现在就开始: select 子句主要决定了从表中取出的列名,列数以及列的显... ...

SQLServer与Oracle常用函数实例对比汇总

一、数学函数 1.绝对值 代码如下:S:select abs(-1) value O:select abs(-1) ... ...

数据库查询排除重复记录的方法

今天由于工作需要,需要在数据库中找出某一字段下不同的记录值,很简单的问题被我想的太复杂,很是郁闷,原因是SQL的一条命令... ...

rfedfre

复杂系统中的用户权限数据库设计解决方案

B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过... ...

也许是被忽略的update语句(update技巧)

呵呵,园里的兄弟我又来写简单的文章了,希望大家不吝赐教。这次要说的是sql里面的update语句。说到这里,肯定会有很多... ...

update 子查询使用介绍

基础知识 1, 关联子查询和非关联子查询 在非关联子查询中,内部查询只执行一次并返回它的值给外部查询,然后外部查询在它... ...

利用带关联子查询Update语句更新数据的方法

Update是T-sql中再简单不过的语句了,update table set column=expression [w... ...

rfedfre

sqlserver中drop、truncate和delete语句的用法

虽然小编不建议大家去用命令删除数据库表中的东西,但是这些删除命令总有用的着的地方。 说到删除表数据的关键字,大家记得最多... ...

rfedfre

最新统计排名前十的SQL和NoSQL数据库排行榜

本排名根据DB Engines的排行榜得来,该排行榜从人气上分析了市场上200个不同的数据库,这里一览Top 10。 无... ...

rfedfre

db2数据库常用操作命令大全

本文详细汇总了DB2的常用操作命令,分享给大家。对于使用db2的朋友可以参考下。 DB2数据库管理客户端从v9.7版本之... ...

eXtremeDB 6.0正式发布:提高扩展性和分布式查询速度

华盛顿州联邦路,2014年10月27日---- McObject®公司, 作为创新型数据库系统软件开发商,宣布其... ...

新推出的金融版eXtremeDB 6.0功能改进预览

通过SQL和Python访问基于矢量的函数来提高编程速度和生产力。分布式查询处理和运用RLE压缩来处理资本市场中的大数据... ...

rfedfre

SQL表连接图解

可以通过图看下 多表查询分为 内、外连接 外连接分为左连接(left join 或left outer join)、右... ...

数据库的ACID特性术语详解

ACID就是:原子性(Atomicity )、一致性( Consistency )、隔离性( Isolation)和持久... ...