主页 > 知识库 > 简单讲解sql语句中的group by的使用方法

简单讲解sql语句中的group by的使用方法

热门标签:400电话申请厂家现货 百度地图标注要什么软件 昌德讯外呼系统 福建外呼电销机器人加盟 中国地图标注公司 天津公司外呼系统软件 自己做地图标注需要些什么 电话机器人的价格多少钱一个月 徐泾镇腾讯地图标注

1.概述

group by 就是依据by 后面的规则对数据分组,所谓的分组就是讲数据集划分成若干个'小组',针对若干个小组做处理。

2.语法规则

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

3.举例说明

我们有这样一个订单表:
 

我们希望统计每一个用户订单的总金额,我们可以借助 group by 来实现:

select Customer,sum(OrderPrice) as total_price group by Customer;

出现下面的结果集:
Bush 2000
Carter 1700
Adams 2000
实际上是先讲数据按照Customer分组,然后统计每一组orderPrice的总和,最后以一组作为一行展现出来。
如果去掉group by 语句就会出现下面的结果:

它是讲所有的price相加得到最后的总和,与我们的预期是不一样的。

4.注意点

如果出现下面的写法:

select 类别, sum(数量) as 数量之和, 摘要from Agroup by 类别order by 类别 desc

会报错,因为select 的字段要么包含在group by 后面作为分组的依据,要么包含在聚合函数中,否则摘要的那一列无法匹配到一行。
因此可以采用如下的写法:

select 类别, sum(数量) AS 数量之和from Agroup by 类别order by sum(数量) desc

如果想使用多列分组,可以采用group by all语法:

select Customer,OrderDate,sum(OrderPrice) group by all Customer,OrderDate

5.where 和having的区别

where 是在查询分组前,讲不符合where 条件的行去掉,即在分组钱过滤数据,where 条件中不能包含聚合函数
having 是筛选满足条件的组,即在分组之后过滤数据,having语句中常常包含聚合函数,用having过滤出特定的组。
举例:

select Customer,sum(OrderPrice) as total_price group by Customer having total_price>1700;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • 一篇文章带你了解数据库中group by的用法
  • MySQL group by对单字分组序和多字段分组的方法讲解
  • pymongo中group by的操作方法教程

标签:陕西 梅河口 驻马店 荆门 鄂尔多斯 黔西 昌都 北京

巨人网络通讯声明:本文标题《简单讲解sql语句中的group by的使用方法》,本文关键词  简单,讲解,sql,语句,中的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《简单讲解sql语句中的group by的使用方法》相关的同类信息!
  • 本页收集关于简单讲解sql语句中的group by的使用方法的相关信息资讯供网民参考!
  • 推荐文章