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 相关文章推荐
MySQL8.0.24版本Release Note的一些改进点
Apr 22 MySQL
详解MySQL连接挂死的原因
May 18 MySQL
MySQL官方导出工具mysqlpump的使用
May 21 MySQL
MySQL大小写敏感的注意事项
May 24 MySQL
Mysql中 unique列插入重复值该怎么解决呢
May 26 MySQL
浅谈mysql返回Boolean类型的几种情况
Jun 04 MySQL
Mysql Innodb存储引擎之索引与算法
Feb 15 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
Mysql分析设计表主键为何不用uuid
Mar 31 MySQL
MySQL RC事务隔离的实现
Mar 31 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
MySQL示例讲解数据库约束以及表的设计
Jun 16 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
DC动漫人物排行
2020/03/03 欧美动漫
xml+php动态载入与分页
2006/10/09 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
详解Python中的array数组模块相关使用
2016/07/05 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python中动态创建类实例的方法
2017/03/24 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python多进程并发demo实例解析
2019/12/13 Python
python range实例用法分享
2020/02/06 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
python利用faker库批量生成测试数据
2020/10/15 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
领导干部保密承诺书
2014/08/30 职场文书
优秀班组事迹材料
2014/12/24 职场文书
信访维稳承诺书
2015/05/04 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫