九、DQL-分组语句

四哥1个月前MySQL58

引言

数据分组是根据统计研究的需要,将原始数据按照某种标准划分成不同的组别,分组后的的数据称为分组数据。

数据分组应遵循两个基本原则:

穷尽性原则

这一原则就是要求调查的每一单位都能无一例外地划归到某一组去,不会产生“遗漏”现象。

互斥性原则

这一原则就是要求将调查单位分组后,各个组的范围应该互不相容、互为排斥。即每个调查单位在特定的分组标志下只能归属某一组,而不能同时或可能同时归属到几个组。

目录

  • 分组概述

  • 分组应用

1、分组概述

1.1、什么是分组

分组就是将一组行记录按列或表达式的值分组成摘要行记录。通过GROUP BY子句返回每个分组的一个行记录。换句话说,它减少了在结果集中的行数。

1.2、分组语法

1.2.1、语法

格式:
select */字段列表 from 数据库表名 [group by 分组字段名 [having 条件表达式]];

1.2.2、分组方式

将学生信息表中男、女同学进行分组

原始数据

image-20200209001000938.png

image-20200209001000938

分组为:男一组,女一组

image-20200209001300283

image-20200209001300283.png


返回每组第一条数据

image-20200209002456226.png

image-20200209002544753

2、分组应用

2.1、实际分组方式

mysql> select sex from students group by sex;
+------+
| sex  |
+------+
| 男  |
| 女  |
+------+
2 行于数据集 (0.01 秒)

注意:

当我们使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不到数据属于哪组的。

单独分组没什么用处,分组的目的就是为了统计,一般分组会跟聚合函数一起使用。

案例:

查询学生信息表中男、女同学的人数

mysql> select sex,count(*) from students group by sex;
+------+----------+
| sex  | count(*) |
+------+----------+
| 男  | 6        |
| 女  | 3        |
+------+----------+
2 行于数据集 (0.01 秒)

2.2、where与having

2.2.1、where

查询学生信息表中数学成绩在80分以上的,男、女同学的人数

#where后面不能用聚合函数
mysql> select sex,count(*) from students where math>80 group by sex;
+------+----------+
| sex  | count(*) |
+------+----------+
| 男  | 4        |
| 女  | 1        |
+------+----------+
2 行于数据集 (0.01 秒)

注意:

where是将不符合条件的先去掉,在分组。

2.2.2、having

查询学生信息表中男、女同学的人数,人数超过3人显示

#having n>3 可以写成 having count(*)>3
mysql> select sex,count(*) as n from students group by sex having n>3;
+------+---+
| sex  | n |
+------+---+
| 男  | 6 |
+------+---+
1 行于数据集 (0.03 秒)

注意:

having是先分组,在将分组后不符合条件的去掉。

2.2.3、where与having区别

where 子句

在分组之前过滤数据,即先过滤再分组。

where 后面不可以使用聚合函数。

having 子句

在分组之后过滤数据,即先分组再过滤。

having 后面可以使用聚合函数。


相关文章

四、SQL

四、SQL

引言结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同...

五、DDL语句

五、DDL语句

引言数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。数据库模式定义语言并非程序设计语言,DDL数据库模式定义语言是SQL语言...

十三、约束

十三、约束

引言约束是按照约定(特定)条件限制,管束等意思。约束的作用是添加、删除。在数据库中对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建...

十二、DQL-模糊查询

十二、DQL-模糊查询

引言模糊查询即模糊检索,是指搜索系统自动按照用户输入关键词的同义词进行模糊检索,从而得出较多的检索结果。与之相反的是“精准搜索”。模糊检索也可以说是同义词检索,这里的同义词是用户通过“检索管理”中的“...

八、DQL-排序语句

八、DQL-排序语句

引言排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序...

七、DQL语句

七、DQL语句

引言DQL(Data QueryLanguage )数据查询语言,基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。目录DQL概述记录查询条件查询1、DQL概述1.1、什么是DQ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。