SQL分组查询和分页查询[代码+运行结果+讲解]

本文详细介绍了SQL中的分组查询(GROUP BY)和分页查询(LIMIT)操作。通过实例展示了如何根据性别分组计算平均分和人数,并利用HAVING子句过滤条件。同时,讲解了分页查询的起始索引计算公式,以及如何通过LIMIT获取不同页面的数据。这些技巧在数据库查询中非常实用。
摘要由CSDN通过智能技术生成

文章目录


前言

分组查询和分页查询也是开发中用到的对数据库表的查询操作。下述代码都是通过stu表,内容如下图:


 

一、分组查询

        1.查询男同学和女同学各自的数学平均分

SELECT sex,AVG(math) FROM stu GROUP BY sex;

        运行结果: 

                        

        

        2.查询男同学和女同学各自的数学平均分,以及各自人数

SELECT sex,AVG(math),COUNT(*) FROM stu GROUP BY sex;

        运行结果:

        ​​​​​​​        ​​​​​​​        

        注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

 

         3.查询男同学和女同学各自的数学平均分,以及各自人数(要求:分数低于70分的不参与分组)

SELECT sex,AVG(math),COUNT(*) FROM stu WHERE math>60 GROUP BY sex;

        运行结果: 

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

        注意:条件必须写在分组前

        4.查询男同学和女同学各自的数学平均分,以及各自人数(要求:分数低于70分的不参与分组,分组之后人数大于等于2)

 

SELECT sex,AVG(math),COUNT(*) FROM stu WHERE math>60 GROUP BY sex HAVING COUNT(*)>=2;

        运行结果: 

                         

       WHERE 和 HAVING区别
                1.执行时机不一样:where 分组前限定查询数据,having 分组后过滤数据
                2.可判断条件不一样:where不能对聚合函数进行判断,having 可以。
    执行顺序: where>聚合函数>having

二、分页查询

        1. 每页显示2条数据,查询第1页数据

SELECT * FROM stu LIMIT 0,2;

         运行结果:

     

         2..每页显示2条数据,查询第2页数据

SELECT * FROM stu LIMIT 2,2;

        运行结果: 

        3.每页显示2条数据,查询第3页数据 

SELECT * FROM stu LIMIT 4,2;

         运行结果:

        不难看出起始索引的规律如下:     

                起始索引计算公式=(当前页码-1)*每页显示条数 

 等实际开发时会用到,当前端点击某个页码时在数据库中调用这条语句把起始索引值传进去进行查询相应页的数据在穿给前端进行展示。


总结

分组查询GROUP BY 分页查询LIMIT(开始索引 查询条目数)。起始索引公式计较重要,也比较好记,最好记住。分组一般是统计数据时会用到。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心态还需努力呀

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值