目录
将一列数据作为一个整体,进行纵向计算。
函数 | 功能 |
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
SELECT 聚合函数(字段列表)FROM 表名;
注意这个表初始为
查询start_table 这张表的总数据量
select count(*) from start_table;
结果为6
查询具体字段(id)的总数据量
select count(id) from start_table;
结果为6
注意:null 值不参与聚合函数运算(如果你查询address 出现结果为5)
统计该表中所有明星 id 平均值
select avg(id) from start_table;
求统计表中最大的id
select max(id) from start_table;
统计所有表中男性id之和
select sum(id) from start_table where gender = '男';
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组过滤后条件]
——执行时机不同:where 是分组之前进行过滤,不满足where条件,不参与分组:与having是分组之后对结果进行过滤。
——执行条件不同:where 不能对聚合函数进行判断,而having可以。
根据性别进行分组,统计男性,女性数量
select gender,count(*) from start_table group by gender;
根据性别分组,统计男性员工和女性员工的平均 id
-
- select gender,avg(id) from start_table group by gender;
根据性别分组,统计所有地址为安徽或者北京的人的数量,count 要大于等于2
select gender,count(*) from start_table where address = '安徽' || address = '北京' having count(*)>=2;
——执行顺序:where > 聚合函数 >having
——分组之后查询的字段一般为聚合函数和分组字段,查询其他字段毫无意义
(比如如果你按照性别分组,但是你在前面查询姓名,查询的姓名只出现一个,这个不代表什么)
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式 1,字段2 排序方式2;
——ASC:升序(默认值)
——DESC: 降序
注意:如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。
根据 id 进行降序排序
select * from start_table order by id DESC ;
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录;
——起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
——分页查询是数据库的方言,不同数据库有不同的实现,MySQL是LIMIT。
——如果查询的是第一页数据,起始索引可以省略,直接写limit 10。
查询第一页明星数量,每页展示3条记录
select *from start_table limit 0,3;
select *from start_table limit 3;
查询第二页明星数量,每页展示3条记录
注:(2 - 1)*3 = 3 ——(页码- 1)* 页展示记录数
select *from start_table limit 3,3;
编写顺序和执行顺序