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

网络编程 2021-07-05 14:37www.168986.cn编程入门
掌握sql语句中group by的使用方法会对我们的工作效率有很大的提升,狼蚁网站SEO优化长沙网络推广来和大家一起简单学习一下

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;

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

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

4.注意点

如果出现狼蚁网站SEO优化的写法

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;

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

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by