聚合查询
进行纵向查询,它是对某一列的值进行计算,然后返回一个单一的值(另外聚合函数会忽略
null
)
SELECT 聚合函数(字段名) FROM 表名;
SELECT COUNT(*) FROM table;
SELECT
SUM(salary) AS '总薪水',
MAX(salary) AS '最高薪水',
MIN(salary) AS '最低薪水',
AVG(salary) AS '平均薪水' FROM table;
分组查询
对数据进行分组之后在各个组内进行聚合统计分析
SELECT 分组字段/聚合函数 FROM 表名 GROUP BY 分组字段 [HAVING 条件];
SELECT dept_name AS '部门名称', AVG(salary) FROM table t WHERE t.dept_name IS NOT NULL GROUP BY t.dept_name;
having
和 where
的区别
过滤方式 | 特点 |
---|---|
where |
where 进行分组前的过滤 where 后面不能写聚合函数 |
having |
having 是分组后的过滤 having 后面可以写聚合函数 |
limit 关键字
limit
用于限制返回的查询结果的行数,用来完成分页
SELECT 字段1, 字段2... FROM 表名 LIMIT offset, length;
offset
起始行数,从 0 开始记数,如省略,则默认为 0
length
返回的行数
分页操作
每页显示3条数据
SELECT * FROM table LIMIT 0,3; -- 第1页
SELECT * FROM table LIMIT 3,3; -- 第2页 2-1=1
SELECT * FROM table LIMIT 6,3; -- 第3页
起始索引 = (当前页n - 1) * 每页条数