admin 管理员组文章数量: 887021
2024年1月9日发(作者:mid的函数怎么用)
sql having和group by的用法
Having子句主要是在使用Group by子句时使用,它是在SQL语句中用于检索统计信息时的限定条件。Having子句可以看做是对查询结果的再次筛选。
Group By子句可以把数据集合划分为几个小组,并对他们应用聚合函数,比如计算这几个小组的平均数和总数。
Having子句用于指定按照Group By子句中选定属性进行分组聚合后,需要满足何种条件才算有效结果,它是一种限定性的谓词,相当于Hbase中的Where子句。
换句话说,Group by子句经过分解后得到的数据是以列表的形式发出的,而Having子句对这些分组的数据进行进一步的筛选,最后得到符合要求的数据。
Having子句主要用在分组函数后面,如:sum,avg,max,min等,以及其他任何涉及分组的查询中,用来限制返回的结果或者控制输入结果。
Having子句一般格式为:
SELECT 列表列
FROM 表
GROUP BY 列表列
HAVING 条件
例如对员工表,可以按照工资求和,条件是工资总和大于3000,也可以按照部门求平均工资,条件是平均工资大于8000,代码如下:
SELECT SUM(salary)
FROM employee
GROUP BY id
HAVING SUM(salary) > 3000
除此之外,Having子句还经常和同时使用其他语句,比如Order By子句,在这种情况下,Having子句通常出现在Order By之前,以便对筛选出的结果进行排序。
Group By子句和Having子句结合使用是SQL语句中一种非常常见的组合,用以实现更多的功能。虽然两个子句有一定的联系,但是用法和目的也不完全相同,Group By子句是对查询结果进行分组,Having子句则是对分组后的结果进行条件判断筛选。
总而言之,Group by子句是用来对数据集进行分组,它只能对分组后的结果进行统计汇总,而Having子句是专门用来排除不符合条件的分组结果的,用来从大量的数据中去除不需要的数据,以得到满足条件的结果。
版权声明:本文标题:sql having和group by的用法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1704795596h462578.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论