(1)group by子句
group by 根据by指定的规则对数据进行分组。
分组:即将一个“数据集”划分成若干个“小区域”,再对若干个“小区域”进行数据处理。
语法:
group by 子句为列中的每个值组合生成一个组。
group by子句的例子:
(2)group by子句和聚合函数
①group by子句通与聚合函数一起用于统计数据;
②聚合函数对组执行计算并返回每个组的唯一值;
③group by子句将行排列成组,聚合函数返回每个组的统计量(总数量、最小值、最大值、平均值、总和等)
例子:
常用的聚合函数:
《1》带有count()函数示例的group by子句
例子:
《2》group by子句带有min()和max()函数的示例
例子:
《3》带avg()函数示例的group by子句
例子:
《4》带有sum()函数示例的group by子句
例子:
(3)having子句
having子句通常与group by子句一起,以根据指定的条件列表过滤分组
语法:
描述:
①group by子句将行汇总为分组,having 子句将一个或多个条件应用于这些每个分组;
②只有使条件评估为true的组才会包含在结果中;
③过滤掉条件评估为 false 或 unknown 的组;
④因为SQL Server在 group by子句之后处理having 子句,所以不能通过使用列别名来引用选择列表中指 定的聚合函数。
因④说明,以下查询将失败:
必须明确使用having子句中的聚合函数表达式,如下:
《1》having子句与count()函数示例
例子:
例子说明:
①group by子句按客户和订单年份对销售订单进行分组
②count() 函数返回每个客户每年下达的订单数
③having 子句筛选出订单数至少为2的所有客户
《2》having子句与sum()函数示例
例子:
例子说明:
①sum函数计算销售订单的净值。
②having子句过滤净值小于或等于20000的销售订单
《3》having子句与max()和min()函数示例
例子:
《4》having子句与avg()函数示例
例子:
更多推荐
SQL语言中的分组数据
发布评论