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 05 MySQL
详解MySQL InnoDB存储引擎的内存管理
Apr 08 MySQL
详解Mysql和Oracle之间的误区
May 18 MySQL
MySQL 存储过程的优缺点分析
May 20 MySQL
详解MySQL中的主键与事务
May 27 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
MySQL数据库中varchar类型的数字比较大小的方法
Nov 17 MySQL
一文了解MYSQL三大范式和表约束
Apr 03 MySQL
MySQL分区路径子分区再分区
Apr 13 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
Apr 20 MySQL
MySQL普通表如何转换成分区表
May 30 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
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
理解JavaScript中的事件
2006/09/23 Javascript
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
checkbox 多选框 联动实现代码
2008/10/22 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
npm的lock机制解析
2019/06/20 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
python批量修改ssh密码的实现
2019/08/08 Python
python实现超市商品销售管理系统
2019/10/25 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
社区班子对照检查材料
2014/08/27 职场文书
党员示范岗材料
2014/12/19 职场文书
实用求职信模板范文
2019/05/13 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
PHP RabbitMQ消息列队
2022/05/11 PHP