聚合函数

   日期:2017-06-15

所有聚合函数都可用distinct选项来去除重复记录
1、利用sum对销售额进行汇总
当使用聚合函数时默认情况下,汇总信息包含所有的指定行。在某些情况下,结果集包含非唯一的行可使用聚合函数distinct选项筛选出唯一的行
Select sum(数量)as 合计数量,sum(金额) as 合计金额 from table_kcb
利用聚集函数sum和group by语句可实现数据分组统计汇总,如汇总入库商品的数量、金额并且通过收货日期进行分组
Select 收货日期,count(*)as 记录数,sum(数量) as 合计数量,sum(金额) as 合计金额 from table_kcb
注意
(1)、适当的索引能够加快聚合函数的运行,例如,如果想对字段 number进行汇总计算,字段number上的索引能够加快查询速度
(2)、sum函数只能用于数据类型是int、smallint、tinyint、decimal、numeric、float、real、money、smallmoney字段
(3)、在使用函数sum时,sqlserver把结果集中的smallint或timyint这些数据类型当作int处理
(4)、在使用sum函数时,sql server 将忽略空值(NULL),即计算时不计算这些空值。
2、利用AVE求某班学生的平均年龄
 Select avg(语文) as 语文成绩,ave(数学)as 数学成绩 from 学生表
Select avg(distinct 语文) as 语文成绩,ave(distinct 数学)as 数学成绩 from 学生表
Select ave(年龄) as 平均年龄from tb_stu
  3、利用min求销售额最少的商品
  Select * from tb_sell where 销价 in(select min(销价)from tb_sell)
  注意 sql server min函数可以用于数据类型为数字、字符、datatime的列,但是不能用于数据类型不bit的列,
   不能使用聚合函数和子查询
4、利用max求月销售额完成最多的员工
  Select * from tb_sellinfo where 销售额 in (select max(销售额) from tb_sellinfo)
  注意 sql server min函数可以用于数据类型为数字、字符、datatime的列,但是不能用于数据类型不bit的列,
   不能使用聚合函数和子查询
  5、利用count求日销售额大于某值的商品数
  Count(*)返回组中项目的数量
  Count(all expeession)返回组中每一行都计算expression并返回非空值的数量
Count(distinct expression)返回组中的每一行都计算expression并返回唯一非空值的数量
Select count(distinct 日期) as 商品数 from xsb where 销价>5000
注意在access中不支持conut(distinct expression)的形式
6、利用first 或last求数据表中第一条或最后一条的记录
   Select first(booknames)as bookname,first(author) as peo,first(sellsum)as slm from tab_booksort
   Last用法同上
 注意 first和last函数只适用于access数据库