SQL Server基础 第六章 聚合函数和分组查询

  • Post author:
  • Post category:其他



前言

在数据查询的很多场合,除了需要显示数据表的原始数据,还需要对这些数据进行分析、汇总以及求极值等, 如获取公司员工的人数、工资总额、最高工资、最低工资和平均工资等。本章我们将通过学习SQL Server 聚合函数轻松获取上述数据。另外,我们经常需要对某些数据进行分门门别类地统计:汇总,如按月份统计员工工资 总额、按种类统计商品的销售总额和平均售价等。利用本章所介绍的GROUP BY子句,同时结合聚合函数,就可有效地解决此类需求。


目录


1、聚合函数


查询这些人的最大money,最小money,平均money,总和money,及统计money行的数量


查询年纪最大的员工的出生日期,及其年龄


2、分组


根据category进行类型分组,然后显示每组的平均价格,并按照平均价格进行排序


根据类型分组统计商品数量和平均单价,并按平均单价升序显示平均单价高于100元的分组信息


根据类型和价格进行多字段分组


统计分组后各组有效数据和​编辑


统计每条订单所订购的商品件数大于4的分组信息,并按商品件数升序显示


​编辑


1、聚合函数

SUM() 求和 sum(列名)
MAX() 最大值 max(列名)
MIN() 最小值 min(列名)
AVG() 平均值 avg(列名)
COUNT() 统计行数, 只统计有效行数

查询这些人的最大money,最小money,平均money,总和money,及统计money行的数量



注意:此时计算平均数时,因为有一个空值所以不参与计算,所以就除以6就好了

select sum(money)宿舍月收入 ,max(money)最高, min (money)最低,AVG (money)平均 ,count(money) from Table_1

查询年纪最大的员工的出生日期,及其年龄

2、分组

group by 列名, 根据列进行分组
group by 列名 having 筛选条件 对分组结果进行筛选
group by 列名 with rollup 统计分组后各组有效行数总和

根据category进行类型分组,然后显示每组的平均价格,并按照平均价格进行排序

select Category,count(*),AVG(UnitPrice)from Goods group by Category order by AVG(UnitPrice)

根据类型分组统计商品数量和平均单价,并按平均单价升序显示平均单价高于100元的分组信息

select Category,count(*)数量,AVG(UnitPrice)平均单价  from Goods group by Category having AVG(UnitPrice)>100 order by 平均单价

根据类型和价格进行多字段分组

统计分组后各组有效数据和

统计每条订单所订购的商品件数大于4的分组信息,并按商品件数升序显示

查询前

select OrdersID,sum(Quantity)商品件数 from OrdersDetail group by OrdersID having sum(Quantity)>4 order by 商品件数

查询后




版权声明:本文为Mr_wangzu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。