测牛学堂:软件测试sql基础夯实系列之sql的分组和分页查询总结

80 阅读2分钟

分组查询

按照字段分组,此字段相同的数据会被放到一个组中。

分组的目的,是对每一组的数据进行统计。 分组查询通常配合聚合函数一起使用。

语法:

select 字段1,字段2,聚合函数 from 表名 group by 字段1,字段2

例1:查询students表中各个性别的人数

select sex,count(*) from students group by sex;

例2 :查询students表中每个班级男女性别的各自的总数

注意:

1分组可以有多个条件,跟排序类似,有顺序的,下面就是在班级分组的基础上,每个班再按照性别去再细分。
2 分组的条件和前面的select的查询项要对应上,否则不会展示出来想要的结果。

select class,sex,count(*) from students group by class,sex;

分组后的数据筛选

分组的过程中,也可以进行条件筛选,但是和不分组的时候使用where关键字不同,分组的条件判断关键字是having
语法: select 字段1,字段2 聚合函数 from 表名 order by字段1,字段2 having 条件
例1:查询students表中男生的总数 where写法:

select count(*) from students where sex = '男'

分组查询的写法:

select sex,count(*) from students group by sex having sex ='男'

上面的例子其实没有必要用分组查询,只是为了跟大家对比。

例2:查询每个班级中男生的人数:

select calss,sex ,count(*) from students group by class,sex having sex = '男'

注意:
1 where 是对from后面指定的表进行删选过滤。属于对原始数据的筛选。
2 having是对group by的结果进行筛选,是对分组结果的筛选。
3 having后面的条件可以使用聚合函数,而where中的条件不能使用聚合函数。

数据查询之分页查询

分页查询的使用场景,就是获取一部分数据的内容。
语法格式: select * from 表名 limit start,count
说明:
limit是分页的关键字。 start 是从哪条数据开始,count 是获取count的值的数量。
start的索引是从0 开始的。
例1:选取students表的前10条数据。

select * from students limit 0,10

常见的分页查询的场景公式

select * from 表名 limit (n-1)*m ,m n表示第几页的数据,m表示每页显示多少条。
注意:m和n是让你自己计算的具体的页数而已,不是语法,不能直接写进sql语句。