分组:
/*
* 1) 先搭建查询架子 select * from stu
---- 分析题干--------------
* 2) 使用 where 排除不参与运算的数据
* 3) 确定那个字段分组 写在 group by 后
* 4) 确定返回的数据
* select 后面的字段要么出现在 group by 后,要么出现在聚合函数中,否则虽然不报错但是无意义
* 5) 对结果集进行筛选 使用 having (注意:having 必须和group by 一起才有意义)
*
* */-- 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的
select sex,avg(math),count(*) from stu where math >=70 group by sex having count(*)>2
where和having区别
执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
分页:limit
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
起始索引 = (当前页码 - 1) * 每页显示的条数
-- (页码-1)*每页条数
select * from stu limit 0,3
select * from stu limit 3,3
select * from stu limit 6,3
-- 补充
第一页查询可以省略为只传递 每页条数
select * from stu limit 3