sql查询语句之平均分、最高最低分及排序语句


Posted in MySQL onMay 30, 2022

前言

以mysql为例,汇总sql查询最高分、最低分、平均分等sql语句,oracle语法类似,可自行修改以下sql语句

创建两个数据库表,一个学生表、一个考试成绩表

DROP TABLE IF EXISTS `score`;
CREATE TABLE `score`  (
  `u_id` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '编号',
  `object_no` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程编号',
  `students_no` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学号',
  `score` int(11) NULL DEFAULT NULL COMMENT '分数'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

INSERT INTO `score` VALUES ('1', '100', 's100', 80);
INSERT INTO `score` VALUES ('2', '100', 's200', 59);
INSERT INTO `score` VALUES ('3', '100', 's300', 79);
INSERT INTO `score` VALUES ('4', '200', 's100', 54);
INSERT INTO `score` VALUES ('5', '200', 's200', 96);
INSERT INTO `score` VALUES ('6', '200', 's300', 74);
INSERT INTO `score` VALUES ('7', '300', 's100', 65);
INSERT INTO `score` VALUES ('8', '300', 's200', 80);
INSERT INTO `score` VALUES ('9', '200', 's400', 62);
INSERT INTO `score` VALUES ('10', '300', 's400', 56);
INSERT INTO `score` VALUES ('11', '100', 's400', 70);
SET FOREIGN_KEY_CHECKS = 1;

DROP TABLE IF EXISTS `students`;
CREATE TABLE `students`  (
  `students_no` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '编号',
  `students_name` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `sex` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
  PRIMARY KEY (`students_no`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

INSERT INTO `students` VALUES ('s100', '张三', '1');
INSERT INTO `students` VALUES ('s200', '李四', '2');
INSERT INTO `students` VALUES ('s300', '张三', '1');
INSERT INTO `students` VALUES ('s400', '王五', '1');
SET FOREIGN_KEY_CHECKS = 1;

数据表数据

sql查询语句之平均分、最高最低分及排序语句

sql查询语句之平均分、最高最低分及排序语句

查询各课程的考试学生人数

select object_no as '课程编号', count(DISTINCT students_no) '考试人数' from score group by object_no

sql查询语句之平均分、最高最低分及排序语句

查询各科成绩最高分和最低分

select object_no as '课程编号',max(score) as '最高分',min(score) as '最低分' from score group by object_no

sql查询语句之平均分、最高最低分及排序语句

查询每门课程被选修的学生数

select object_no as '课程编号', count(DISTINCT students_no) as '学生编号' from score group by object_no

sql查询语句之平均分、最高最低分及排序语句

查询男生、女生人数

select sex '性别',count(DISTINCT students_no) '数量' from students group by sex

sql查询语句之平均分、最高最低分及排序语句

查询平均成绩

select students_no as '学生编号',avg(score) as '平均成绩' from score group by students_no

sql查询语句之平均分、最高最低分及排序语句

查询平均成绩大于70分学生的学号和平均成绩

select students_no as '学生编号',avg(score) as '平均成绩' from score group by students_no HAVING avg(score)>70

sql查询语句之平均分、最高最低分及排序语句

查询学生考试参与考试课程数量

select students_no as '学生编号',count(object_no) as '课程编号'  from score   group by students_no

sql查询语句之平均分、最高最低分及排序语句

查询考试两门以上课程的学生学号

select students_no as '学生编号',count(object_no) as '课程编号'  from score   group by students_no HAVING count( object_no)>2

sql查询语句之平均分、最高最低分及排序语句

查询同名学生名单并统计同名人数

select students_name as '学生名称',count(students_name) as '同名数量'  from students group by students_name HAVING count(students_name)>1

sql查询语句之平均分、最高最低分及排序语句

计算每门课程的平均成绩

select object_no as '课程编号',avg(score) as '平均成绩' from score group by object_no

sql查询语句之平均分、最高最低分及排序语句

计算每门课程的平均成绩并且平均成绩大于等于70分

select object_no as '课程编号',avg(score) as '平均成绩' from score group by object_no HAVING avg(score)>70

sql查询语句之平均分、最高最低分及排序语句

查询不及格的课程并按课程号从大到小排列

select object_no as '课程编号',students_no '学生编号',score '分数' from score where score<60 order by object_no desc

sql查询语句之平均分、最高最低分及排序语句

查询每门课程的平均成绩,结果按平均成绩降序排列,如果平均成绩相同时,按课程号升序排列

select object_no as '课程编号',avg(score) as '平均成绩' from score group by object_no order by avg(score) desc,object_no asc

sql查询语句之平均分、最高最低分及排序语句

总结

到此这篇关于sql查询语句之平均分、最高最低分及排序语句的文章就介绍到这了!

MySQL 相关文章推荐
MySQL获取所有分类的前N条记录
May 07 MySQL
超详细教你怎么升级Mysql的版本
May 19 MySQL
详解MySQL集群搭建
May 26 MySQL
如何自己动手写SQL执行引擎
Jun 02 MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 MySQL
解决mysql的int型主键自增问题
Jul 15 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
MySQL连接控制插件介绍
Sep 25 MySQL
深入解析MySQL索引数据结构
Oct 16 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
Mysql中mvcc各场景理解应用
Aug 05 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
Aug 14 MySQL
mysql5.5中文乱码问题解决的有用方法
深入理解MySQL中MVCC与BufferPool缓存机制
MYSQL事务的隔离级别与MVCC
详解Mysql数据库平滑扩容解决高并发和大数据量问题
MySQL中EXPLAIN语句及用法
May 20 #MySQL
Mysql 一主多从的部署
May 20 #MySQL
mysql 排序失效
May 20 #MySQL
You might like
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
农历与西历对照
2006/09/06 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
js 上传图片预览问题
2010/12/06 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
javascript如何创建对象
2016/08/29 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
简单了解Python write writelines区别
2020/02/27 Python
Python Django搭建网站流程图解
2020/06/13 Python
详解python polyscope库的安装和例程
2020/11/13 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
类如何去实现接口
2013/12/19 面试题
工作疏忽检讨书
2014/01/25 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
js基础语法与maven项目配置教程案例
2021/07/15 Javascript