这样:
select from
(select top 10 id,score
from table
order by score) a
where aid not in (select top 9 id from table order by score)
扩展资料:
注意事项
SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。
:语法
SELECT 列名称 FROM 表名称
以及:
SELECT FROM 表名称
注释:SQL 语句对大小写不敏感。SELECT 等效于 select。
如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:
SELECT LastName,FirstName FROM Persons
你的意思是一次只显示某个班的年级排名,大概是这个意思吧。
你什么数据库,我说的是oracle的做法(你的写法看起来似乎也是oracle),如果是其他数据库那么自行查找类似的办法。
(1)用rank开窗函数做排名,好处是不用改变原有的结构,直接写就可以做排名。
(2)所有学生order by以后,前面加上序号,然后再找出符合调价students_grade=2023
AND students_class=1的。
(3)先在score表内排名,然后再去关联,这样就这可以直接作出排名了。
就是把现在的关联后查询变成了先查询再关联。类似 where e_id = '${考试编号}'放在scroe的子查询里,这个子查询里直接对这次的成绩进行排名,排名方式可以用我上面写的,也可以用其他方式,然后用这个子查询再去关联学生表,这样看起来就清爽多了。
select name,score from (
select name,score,dense_rank() over(order by score) "row" from t )
where "row"=10
select
学生表a名称 as 学生姓名,
老师表b名称 as 老师姓名,
班级表c名称 as 所属班级,
总分表g总分 as 总分,
rownum as 排名
from
(select
学生编号 as 学生编号,
sum(考试成绩) as 总分
from
成绩表f
group by 学生编号)总分表g
inner join
学生班级表d
on
学生班级表d学生编号 = 总分表g学生编号
inner join
老师班级表e
on
老师班级表e班级编号 = 学生班级表d班级编号
inner join
班级表c
on
班级表c编号 = 老师班级表e班级编号
inner join
学生表a
on
学生表a编号 = 学生班级表d学生编号
inner join
老师表b
on
老师表b编号 = 老师班级表e老师编号
where
班级表c年级 = '三年级'
order by 总分表g总分 desc
不同数据库取得rownum的方法不一样注意变下
SET @i=0。
SQL本身有数据导入的 *** 作。但如果要从一个备份的文件中导入数据,则要进行另外的 *** 作。下面以一个例子进行说明。
SQL服务器上已有一个DOE数据库,并且里面有大量的数据,现准备从另外一个备份文件A1BAK(不是DOE数据库的备份文件)中导入另外的数据(即导入后在DOE中增加一些数据表,表中已录有数据),并保持原DOE的数据不变。
扩展资料:
在为MySQL分配足够的内存之前,请考虑不同领域对MySQL的内存需求。要考虑的关键领域是:并发连接——对于大量并发连接,排序和临时表将需要大量内存。在撰写本文时,对于处理3000+并发连接的数据库,16GB到32GB的RAM是足够的。
内存碎片可以消耗大约10%或更多的内存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等缓存和缓冲区要消耗大约80%的已分配内存。
参考资料来源:百度百科-MySQL数据库
以上就是关于SQL语句查询排名第10的学生姓名全部的内容,包括:SQL语句查询排名第10的学生姓名、sql 排名次、怎么用sql查询班级前十名成绩的同学的姓名和分数(成绩相同的学生算同一个名次)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)