mysql数据库sql练习总结 第二天 (查询各科成绩前两名的记录、查询平均成绩大于60分的学生的学号和平均成绩等等)

😁 作者:Teddy (公众号:鸡仓故事汇)
⏰ 时间:2021年03月18日14:57:52
☁️ 天气:晴天


汇总分析二(查询结构排序,分组的指定条件)

1.查询学生的总成绩并进行排名
2.查询平均成绩大于60分的学生的学号和平均成绩
3.查询所有课程成绩小于60分学生的学号、姓名
4.查询没有学全所有课的学生的学号、姓名
5.查询出只选修了两门课程的全部学生的学号和姓名
6.1990年出生的学生名单
7.查询各科成绩前两名的记录
8.查询各学生的年龄(精确到月份)
9.查询本月过生日的学生

1.查询学生的总成绩并进行排名(简易)

# 【考察知识点】分组查询
select sum(achievement) achNum from score group by sid order by achNum;

2.查询平均成绩大于60分的学生的学号和平均成绩(简易)

# 【考察知识点】分组+条件
select sid, avg(achievement) avg from score group by sid having avg > 60;

3.查询所有课程成绩小于60分学生的学号、姓名(中等)

# 【考察知识点】子查询
select s.id, s.name from score sc left join student s on sc.sid = s.id where sc.achievement < 60;select id, name from student where id in (select sid from score where achievement < 60);

4.查询没有学全所有课的学生的学号、姓名(中等)

# 【考察知识点】in,子查询
select id, name from student where id in (select sid from score group by sid having count(courseid) < (select count(1) from course));

5.查询出只选修了两门课程的全部学生的学号和姓名(中等)

# 【考察知识点】in查询
select id, name from student where id in (select sid from score group by sid having count(courseid) = 2);

6.1990年出生的学生名单(简易)

提示:日期函数。
在这里插入图片描述

# 【考察知识点】时间函数
select * from student where YEAR(create_time) = 1990;

7.查询各科成绩前两名的记录(困难)

select * from score s where (select count(distinct achievement) from score s2 where s.courseid = s2.courseid and s2.achievement >= s.achievement) <= 2 order by s.achievement DESC;

8.查询各学生的年龄(精确到月份)

函数方法(* ̄︶ ̄)返回值备注
datediff()比较时间函数返回两个日期之间的天数只有值的日期部分参与计算
timestampdiff()比较时间戳函数返回两个日期之间的天数
# 【考察知识点】时间函数 timestampdiff() 
select name, round(timestampdiff(month , create_time, now())/12) 岁数 from student;

9.查询本月过生日的学生(简易)

# 【考察知识点】时间函数
select * from student where month(create_time) = month(now());

ok!今天的分享就到这里,小编(Teddy)在这里先感谢大家的到来。
虽然不是太详细,小编已经很努力,给小编来个一键三连(点赞,关注,收藏),小编会越来越努力。。。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值