零基础学SQL(九、分组 GROUP BY)
目录
前置建表
编辑
一、分组的概念
二、分组案例
三、分组的过滤HAVING子句
前置建表
CREATE TABLE student (id int NOT NULL AUTO_INCREMENT COMMENT '主键',code varchar(255) NOT NULL COMMENT '学号',name varchar(255) DEFAULT NULL COMMENT '姓名',sex enum('男','女') DEFAULT NULL COMMENT '性别',age int(0) NULL COMMENT '年龄',PRIMARY KEY (`id`)
);INSERT INTO `test`.`student`(`id`, `code`, `name`, `sex`, `age`) VALUES (1, '20220101', '张三', '男', 12);
INSERT INTO `test`.`student`(`id`, `code`, `name`, `sex`, `age`) VALUES (2, '202202', '李四', '男', 14);
INSERT INTO `test`.`student`(`id`, `code`, `name`, `sex`, `age`) VALUES (3, '202203', '王五', '女', 10);
INSERT INTO `test`.`student`(`id`, `code`, `name`, `sex`, `age`) VALUES (4, '202204', '张三飞', '男', 20);
INSERT INTO `test`.`student`(`id`, `code`, `name`, `sex`, `age`) VALUES (5, '202205', '小丽', '女', 10);
INSERT INTO `test`.`student`(`id`, `code`, `name`, `sex`, `age`) VALUES (6, '202206', '小明', '男', 11);
数据如下
一、分组的概念
有时需要在数据中找到变化的趋势,这就需要数据库服务器在产生所需要的结果集之前对数据进行一些加工。这时可以使用group by子句请求数据库服务器对数据进行分组。
二、分组案例
SELECT a.sex,count(1) from student a GROUP BY a.sex ; -- 根据性别分组,查看男女各有多少人
SELECT a.age,count(1) from student a GROUP BY a.age ; -- 根据年龄分组,查看各个年龄有多少人
当然GROUP BY还可以结合函数,case when等语法实现分组,如以下案例
SELECT CASE WHEN a.age>12 THEN'大于12岁'ELSE'小于等于12岁'
END 条件,count(1) from student a GROUP BY CASE WHEN a.age>12 THEN'大于12岁'ELSE'小于等于12岁'
END ; -- 查询大于12岁和小于等于12岁有多少人
如果获取分组信息之后,还需要获取汇总值,则可以结合WITH ROLLUP关键字来实现
SELECT a.age,count(1) from student a where age<15 GROUP BY a.age HAVING count(1)=1 ; -- 筛选出年龄小于15的数据,根据年龄分组,查看各个年龄有多少人
三、分组的过滤HAVING子句
SELECT a.sex,count(1) from student a GROUP BY a.sex HAVING count(1)>2; -- 根据性别分组,获取分组之后count大于2的数据
![](/assets/blank.gif)
SELECT a.age,count(1) from student a where age<15 GROUP BY a.age HAVING count(1)=1 ; -- 筛选出年龄小于15的数据,根据年龄分组,查看各个年龄有多少人
零基础学SQL(九、分组 GROUP BY)相关推荐
- 零基础学SQL(1):初识数据库与SQL
零基础学SQL(1):初识数据库与SQL 一.初识数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以 进行高效访问的数据集合.该数据集合称为数据库(Database,DB).用来管理数据库的 ...
- 零基础学sql要多久_成人零基础学习钢琴,要多久能学会?
越来越多的人都开始在开始工作之后想要练习一门技艺了.不知道大家身边的朋友是不是也在报一些培训班,健身班,瑜伽班,舞蹈班.每个人都有自己向往的生活与目标,那学会钢琴,也慢慢变成了更多喜爱音乐的朋友的目标 ...
- 零基础学sql要多久_零基础小白如何迈出学习SQL的第一步?文科生学SQL的心得
本文适用对象:从没接触过编程的零基础小白 首先,判断是否需要学习SQL 学习的第一步:了解SQL的用途. 比如你的目的是处理小量数据,那么excel就能满足需求,且excel简单易学,适用性广,这种情 ...
- 零基础学SQL(十一、视图)
目录 前置建表 一.什么是视图 二.为什么使用视图 三.视图的规则和限制 四.视图的增删改查 五.视图数据的更新 前置建表 CREATE TABLE student (id int NOT NULL ...
- 零基础学SQL(十、子查询与多表关联)
目录 前置建表 编辑 编辑 一.子查询 1.什么是子查询 2.子查询的类型 二.表关联查询 1.连接分类 1.1.交叉连接 (CROSS JOIN) 1.2.内连接(inner join) ...
- 零基础学SQL(二、MYSQL数据类型)
目录 一.数据类型 一.数值型数据 1.整数类型 2.小数类型 二.字符串类型 1.char 2.VARCHAR 3.BLOB和TEXT类型 三.日期和时间类型 四.枚举类型 五.set类型 一.数据 ...
- 零基础学SQL(四、可视化工具连接数据库、数据库创建及删除)
目录 一.使用Navicat链接MYSQL 二.创建数据库 1.创建数据库的命令 2.删除数据库 删库需谨慎 3.修改数据库名称 三.可视化工具操作 1.创建数据库 2.删除数据库 删库需谨慎 一. ...
- 零基础学SQL(十三、事务)
目录 前置建表 编辑 一.什么是事务 二.事务特性ACID 1.原子性(Atomicity) 2.一致性(Consistency) 3.隔离性(Isolation) 4.持久性(Durabilit ...
- 零基础学SQL(六、数据的增删改查简单语句)
目录 前置建表 一.数据的插入 1.插入数据语法 1.1.插入完整的行 1.2.插入行的一部分 1.3 .插入多行 1.4.插入某些查询的结果 二.数据的简单查询 1.查询数据语法 三.数据的修改 1 ...
最新文章
- Windows下Mysql主从配置(Mysql5.5)
- [学习笔记]最小圆覆盖
- 计算机网络通信技术课程的基本知识点内容,河北《计算机网络与通信(2339)》自学考试大纲...
- linux kill命令详解
- PHP webshell
- Educational Codeforces Round 64 Div.2 D - 0-1-Tree
- 用C#写的汉语转拼音缩写的例子
- 教你10分钟搭建酷炫的个人博客
- Python配置CPLEX
- 一文学会「内存映射」
- 关于Zipf定律的理解和python实现
- ESP32超详细学习记录:获取B站粉丝数
- windows7怎么安装android,安卓手机如何装win7系统
- 徐静蕾代言“英纳格”的十大不合理
- Windows下载安装 PostgreSQL和PostGIS工具,并解决The pgAdmin 4 server could not be contacted:
- B端和C端产品主要差异:用户、体验、数据
- uni-app在华为应用市场上架审核无法通过,涉及个人信息:IMEI用户数据收集问题
- 关于处理Excel表中文字不能自动换行问题
- 什么是RPC?RPC好处?常用的RPC框架?
- Object.freeze原来有这么大的作用