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 函数调用优化
Apr 07 MySQL
jdbc使用PreparedStatement批量插入数据的方法
Apr 27 MySQL
解析MySQL binlog
Jun 11 MySQL
MySQL快速插入一亿测试数据
Jun 23 MySQL
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
详解MySql中InnoDB存储引擎中的各种锁
Feb 12 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
MySQL范围查询优化的场景实例详解
Jun 10 MySQL
MySQL添加索引特点及优化问题
Jul 23 MySQL
数据设计之权限的实现
Aug 05 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
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
python 定时修改数据库的示例代码
2018/04/08 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
大学生创业项目方案
2014/03/08 职场文书
讲座主持词
2014/03/20 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书