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;
扩展资料:
学生成绩表常用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
用sql语句,查询每个班级成绩排名前三名的学生姓名1、首先在打开的SQL Server中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示 。
2、此时就能利用Select和From语句,查询数据,如下图所示 。
3、但是要查找姓名中包含有【张】,那么不能用等号,如下图所示 。
4、因此一定要必须使用Like关键字,才能查询SQL的数据 。
5、这个时候,如果单对【张】字后加个百分号是不允许的,这样只能查找姓张的数据 。
6、如果想要前后都有关键字【张】,那么一定要在前后都加百分号,就能实现模糊查找姓名 。
sql语言,有一个成绩单表,已知学生姓名,如何查询名次?1、创建测试表,
create table test_score(name varchar2(20), score number);
2、插入测试数据
insert into test_score values('张三', 85);
insert into test_score values('李四', 90);
insert into test_score values('王二', 95);
推荐阅读
- 游戏开发解说,游戏解说开场白台词大全
- 俄罗斯手表怎么用手机,俄罗斯表怎么调时间
- 苹果手机都有什么尺寸,苹果手机都有什么尺寸型号
- 创意直播带货,创意直播带货怎么做
- vb.net安卓 vbnet keydown
- 营销如何拓展市场,如何拓展销售市场
- 橙光文字冒险小游戏网页,好玩的橙光文字游戏
- oracle查询快照,oracle查询快照sql
- vb.net三角函数 vb三角函数计算程序界面