首页 > 数据库 >MySQL分组查询以及having筛选

MySQL分组查询以及having筛选

时间:2024-04-08 12:04:17浏览次数:24  
标签:insert 10 DEFAULT into values result MySQL 分组 having

DDL

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `createDate` datetime DEFAULT NULL,
  `userName` varchar(20) DEFAULT NULL,
  `pwd` varchar(36) DEFAULT NULL,
  `phone` varchar(11) DEFAULT NULL,
  `age` tinyint(3) unsigned DEFAULT NULL,
  `sex` char(2) DEFAULT '男',
  `introduce` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 
CREATE TABLE `result` (
  `rid` int(11) NOT NULL AUTO_INCREMENT COMMENT '成绩编号',
  `testName` varchar(255) DEFAULT NULL COMMENT '测试名称',
  `score` double(4,2) DEFAULT NULL COMMENT '成绩',
  `studentId` int(11) DEFAULT NULL COMMENT '学生id',
  PRIMARY KEY (`rid`),
  KEY `studentId` (`studentId`),
  CONSTRAINT `result_ibfk_1` FOREIGN KEY (`studentId`) REFERENCES `student` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

DML

insert into student values(0,'2024-02-25 10:10:10','赵灵儿','123',
'15612345678',16,'女','逍遥哥哥,你终于找到我了。');
insert into student values(0,'2024-02-25 10:10:10','王语嫣','123',
'15612345678',17,'女','慕容复,我和你不共戴天。');
insert into student values(0,'2024-02-25 10:10:10','龙姑娘','123',
'15612345678',22,'女','我想过过过儿过过的日子。');
insert into student values(0,'2024-02-25 10:10:10','杨过','123',
'15612345678',18,'男','一遇杨过误终身。');
insert into student values(0,'2024-02-25 10:10:10','杨逍','123',
'15612345678',27,'男','杨过跟程英的大儿子。');
insert into student (userName,age,introduce)values('黄衣女子',26,'杨过与龙姑娘的大女儿。');
 
insert into result values(0,'政治',96,1);
insert into result values(0,'地理',86,5);
insert into result values(0,'政治',77,3);
insert into result values(0,'英语',99,3);
insert into result values(0,'历史',22,6);
insert into result values(0,'化学',69,2);
insert into result values(0,'Java',79,5);
insert into result values(0,'Java',67,6);
insert into result values(0,'政治',97,2);
insert into result values(0,'物理',76,6);
insert into result values(0,'物理',82,2);
insert into result values(0,'化学',56,4);

DQL

# 使用那一列分组就只有那一列有效,其余无效
select testName '测试名称',
sum(score) '科目总分',
count(score) '科目考试人数',
avg(score) '科目平均分'
from result 
where studentId<4  # 基础筛选
group by testName  # 分组操作
HAVING avg(score)>60 # 分组后筛选
ORDER BY avg(score) desc; # 根据平均分倒序排列

 

#分组显示时,只有被分组的列数据有效,其余无效
select studentId '学号',userName '学生姓名',introduce '学生简介',
sum(score) '学生各科目总成绩',
count(score) '学生参与考试科目数量',
avg(score) '学生所有科目平均成绩',
max(score) '学生所有科目中最高分',
min(score) '学生所有科目中最低分'
from result INNER JOIN student on result.studentId=student.id
where sex='男'
GROUP BY studentId,userName,introduce
having avg(score)<60
order by avg(score) desc;

select * from result INNER JOIN student on result.studentId=student.id;

标签:insert,10,DEFAULT,into,values,result,MySQL,分组,having
From: https://blog.csdn.net/2302_80727358/article/details/137502853

相关文章

  • MySQL分组查询以及having筛选
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • MySQL多表联合查询、聚合函数
    1、DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyin......
  • 基于SSM+Jsp+Mysql的汽车在线销售系统
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示网站首页车辆信息管理员登录用户信息管理车辆信息管理出库记录管理入库记录管理车辆购买管理......
  • MYSQL多表联合查询
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • MySQL分组查询实例2
    DDL——学生表——成绩表 CREATETABLE`class`(`id`int(11)NOTNULLAUTO_INCREMENT,`createdate`datetimeDEFAULTNULL,`username`varchar(255)DEFAULTNULL,`pwd`varchar(255)DEFAULTNULL,`phone`varchar(255)DEFAULTNULL,`age`int(3)......
  • My SQL分组查询以及having筛选
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • MySql分组查询及having筛选
    DDLCREATETABLE`result`(`rid`int(11)NOTNULLAUTO_INCREMENTCOMMENT'成绩编号',`testName`varchar(255)DEFAULTNULLCOMMENT'测试名称',`score`double(4,2)DEFAULTNULLCOMMENT'成绩',`studentId`int(11)DEFAULTNULLCO......
  • 基于SSM+Jsp+Mysql的农产品供销服务系统
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示用户前台功能界面用户注册界面用户登录界面农产品界面个人中心界面收货地址界面确认下单界面......
  • MySQL面试题
    一、MySQL的事务隔离级别SQL中定义了4种隔离级别,不同的隔离级别对应着事务中做不同的修改,同时在事务内和事务间的可见性也不同。越低的隔离级别越能支持更高的并发,对系统的开销也越低。1.readuncommitted(未提交读)最低级别,允许一个事务读取另一个事务尚未提交的数据。这可......
  • MySQL 常见和不常见的所有查询语句
    介绍:MySQL是一个功能强大的关系型数据库管理系统,支持丰富的查询语句,用于从数据库中检索、插入、更新和删除数据。本文将介绍MySQL中常见和不常见的所有查询语句,并为每个语句提供示例。常见查询语句:1.select 从数据中检索数据select*fromtable_name;2.insert  向......