当前位置:首页 » 成绩查询 » 查询总成绩的前3名

查询总成绩的前3名

发布时间: 2021-01-06 15:30:02

⑴ SQL语句如何查询成绩的前三名带成绩重复的

select * from table where 成绩 in (select top 3 distinct 成绩 from table order by 成绩 desc) order by 成绩 desc

下面这个效率要高内点容
select * from table where 成绩 >= (select min(成绩) from(select top 3 distinct 成绩 from table)) order by 成绩 desc

⑵ oracle中的sql求总分前三名

可以用row_number来查询。

1、创建数据表,插入数据:

createtablesc
(idint,
namevarchar(20),
classvarchar(20),
scoreint);

insertintoscvalues(1,'badkano','一年一班',100);
insertintoscvalues(2,'网络知道团长','一年一班',99);
insertintoscvalues(3,'小短','一年一班',95);
insertintoscvalues(4,'小小动','一年一班',97);
insertintoscvalues(5,'小智','一年一班',80);
insertintoscvalues(6,'吕布','一年二班',67);
insertintoscvalues(7,'赵云','一年二班',90);
insertintoscvalues(8,'典韦','一年二班',89);
insertintoscvalues(9,'关羽','一年二班',70);
insertintoscvalues(10,'马超','一年二班',98);
commit;

2、查询分数的前三名,可用以下语句:

select*from
(selectrow_number()over(orderbyscoredesc)rn,sc.*fromsc)
wherern<=3;

3、结果显示:

⑶ 请教sql语言,如何查询前三名学生......

信息没给足,, 成绩表通过什么字段和st_info 以及 c_info关联呢??

以上信息不足,没法直接给内你容写完整的sql,只能给你个大致的语句供参考

select top 3 st_name,score from st_info,s_c_info..... where ......
order by score desc

⑷ access2003 查找各科成绩80分以上的学生的总成绩,并显示前三名如何设定

查询窗体的设计视图请参照下图:

下面是上图对应的查询窗体的SQL视图。。

SELECTTOP3姓名专,数学,语文属,英语,Val([数学])+Val([语文])+Val([英语])AS总成绩
FROM成绩表
GROUPBY姓名,数学,语文,英语
HAVING数学>"80"AND语文>"80"AND英语>"80"
ORDERBYVal([数学])+Val([语文])+Val([英语])DESC;

⑸ mysql版 查询各科成绩前三名的记录:(不考虑成绩并列情况)

上面那条答案应该是可以的啊,可能是看起来复杂了点吧,我自己试过版是没问题的:
SELECT t1.sno,t1.cno,Score
FROM SC t1
WHERE EXISTS
(SELECT COUNT(1)
FROM SC
WHERE t1.cno= cno AND t1.score<score
HAVING COUNT(1)<3)
ORDER BY t1.cno,score DESC
另外还有一种权类似的写法:

SELECT t1.sno,t1.cno,Score
FROM SC t1
WHERE
(SELECT COUNT(cno)
FROM SC
WHERE t1.cno= cno AND t1.score<score)<3
ORDER BY t1.cno,score DESC

⑹ 用sql语句,查询每个班级成绩排名前三名的学生姓名

1、首先在打开的SQLServer中,假设有两条数据中,包含有【张】,但是这个张一前一后,如专下图所属示。

⑺ SQL语句:查询各班成绩前3的同学姓名

分析如下:

可以用row_number函数来解决。

1、创建测试表,插入数据:

(资料来源:网络:SQL语句)

⑻ mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等

学生表名为:student, 单科成绩的字段为:subject。学生名字为:name

查询单科成绩前十:mysql语句为:select * from student order by subject desc limit 10;

查询总分成绩前十:mysql语句为:select sum(subject) subject,name from student group by name order by subject desc limit 10;

注:

select sum(subject) subject,name

这句的意思是:sum(subject) subject 把单科成绩加总用subject 来命名(就是总成绩),name就是一个字段,这里只有两个字段。

group by name order by subject : group by name 的意思按照名字这一栏来分组,当然,学生成绩表名字有可能是一样的,按照学号是最准确的,这里只是举个例子。

order by subject 这句的意思是按照总分成绩排序,这里的subject 是前面重命名总分的意思。

select sum(subject) as countsubject,name from student group by name order by countsubject desc limit 10;

(8)查询总成绩的前3名扩展阅读:

学生成绩表常用sql

1. 在表中插入符合主键

[sql]

/*成绩表*/

CREATE TABLE SC

(

Sid INT REFERENCES Student(Sid), /*学生学号*/

Cid INT REFERENCES Course(Cid), /*课程编号*/

Score INT NOT NULL, /*课程分数*/

PRIMARY KEY(Sid,Cid) /*将学生学号和课程编号设为复合主键*/
)

2. 查询各科成绩最高分,最低分以及平均分

[sql]

SELECT c.Cname, MAX(s.Score) AS Max, MIN(s.Score) AS Min, AVG(s.Score) AS Average

FROM Course c JOIN SC s ON c.Cid = s.Cid

GROUP BY c.Cname

/*此处应注意,若不按照c.Cname进行分组,SQL语句会报错,c.Cname在SELECT语句中不合法,因为它并未出现在聚合函数中也没有出现在GROUP BY语句中*/


3. 查询平均成绩大于80分的学生姓名以及平均成绩

[sql]

SELECT Sname, AVG(Score) AS Average FROM Student JOIN SC

ON Student.Sid=SC.Sid

GROUP BY Sname

HAVING AVG(Score)>80

/*以聚合函数为条件进行删选只能在HAVING语句中进行,WHERE语句不支持聚合函数*/

4.按总分为学生排名,总分相同名次相同

[sql]

SELECT RANK() OVER (ORDER BY SUM(ss.Score) DESC) AS Rank, s.Sname,

ISNULL(SUM(ss.Score),0)

FROM Student s LEFT JOIN SC ss

ON s.Sid = ss.Sid

GROUP BY s.Sname

ORDER BY SUM(ss.Score) DESC

/*RANK()是SQL Server的一个built-in函数,语法为

RANK() OVER ( [ partition_by_clause ] order_by_clause ).*/

5. 查询总分在100至200之间的学生姓名及总分

[sql]

SELECT s.Sname,SUM(ss.Score) FROM Student s JOIN SC ss ON s.Sid=ss.Sid

GROUP BY s.Sname HAVING SUM(ss.Score) BETWEEN 100 AND 200

⑼ Mysql 单表查询各班级总分前三名

select class,total,name from (select *,ywsc+sxsc as total from st ORDER BY total DESC) b
where
not EXISTS(select * from (select *,ywsc+sxsc as total from st ORDER BY total DESC) c where c.class=b.class and b.total < c.total GROUP BY c.class HAVING COUNT(*)>2 )
ORDER BY b.class,b.total DESC

⑽ 用sql语句,查询每个班级成绩排名前三名的学生姓名

1、首先在打开的SQLServer中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919