iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL的聚合函数及分组查询
  • 766
分享到

SQL的聚合函数及分组查询

SQL的聚合函数及分组查询 2017-02-04 20:02:36 766人浏览 绘本
摘要

sql的聚合函数及分组查询 要在这个世界上获得成功,就必须坚持到底:至死都不能放手。 count select count(*) from students #底层优化了 select count(1) from

SQL的聚合函数及分组查询

sql的聚合函数及分组查询

要在这个世界上获得成功,就必须坚持到底:至死都不能放手。

count

select count(*) from students #底层优化了

select count(1) from students #效果和*一样

select count(age) from emp #慢,只统计非NULL的

max / min

select max(score) max from scores #求该字段的最大值

select min(score) min from scores #获取该字段的最小值

select class,max(score) from scores group by class #配合分组使用

sum / avg

select sum(score) from scores #求和

select avg(score) from scores #求平均数

分组 group by

  • 用于对查询的结果进行分组统计
    • group by表示分组,
    • having 子句类似where过滤返回的结果
select class,max(score) from scores group by class #聚合函数配合分组使用

这里的意思是从scores表中,查询班级class和最高成绩,按班级分组。

报错句分析:

Invalid use of group function

#select class,max(score) FROM scores where max(score) > 80 GROUP BY class;

先过滤再分组是高效的,但where中不能使用聚合函数,所以这里我们应该使用having子句。

select class,max(score) FROM scores GROUP BY class having max(score) > 80;

注意:这里是先查询分组完后,再执行having子句的过滤条件。

总结

  • where 子句的作用是对查询结果进行分组前,将不符合where条件的数据去掉,即在分组之前过滤数据,where条件中不能使用聚合函数过滤出特定的数据。

  • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚合函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组,但要注意,having中使用的过滤条件必须是查到的结果。

您可能感兴趣的文档:

--结束END--

本文标题: SQL的聚合函数及分组查询

本文链接: https://www.lsjlt.com/news/8663.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作