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新手入门的基本操作汇总
May 13 MySQL
MySql开发之自动同步表结构
May 28 MySQL
MySql 8.0及对应驱动包匹配的注意点说明
Jun 23 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
分享mysql的current_timestamp小坑及解决
Nov 27 MySQL
全面盘点MySQL中的那些重要日志文件
Nov 27 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
MySQL数据库 安全管理
May 06 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 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
php在字符串中查找另一个字符串
2008/11/19 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
MooTools 1.2介绍
2009/09/14 Javascript
js类的静态属性和实例属性的理解
2009/10/01 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
pycharm 配置远程解释器的方法
2018/10/28 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
西班牙购买隐形眼镜、眼镜和太阳镜网站:Lentiamo.es
2020/06/11 全球购物
大学优秀班主任事迹材料
2014/05/02 职场文书
求职信标题怎么写
2014/05/26 职场文书
初中家长评语大全
2014/12/26 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers