你真的会玩 SQL 吗?你所不知道的数据聚合

本章的内容与 你真的会玩SQL吗?透视转换内容 非常重要,非常重要,非常重要 ,不理解的可以慢慢看,回头看,过几天再看,以后很多思想需要以此为基础而演变。

此后用到的用例数据库是SQL2008里面的,若看过本系列之前的文章,创建过基础样例数据库就不用再创建。

若没有创建过的,用例数据库文件:链接:http://pan.baidu.com/s/1qW1QxA0 密码:dqxx

 

连续聚合

下面的例子将使用一个EmpOrdersr汇总表,每位雇员在每个月占一行,包含该雇员在一个月内处理过的订单数量,运行下代码创建数据:

查询:

将输出以下内容

接下来讲讲各类聚合……

 

1.累积聚合

为每个雇员和每个月,返回从其开始有订单操作以来到该月份处理过的订单总量和每月的平均量,结果如下,怎么做?

若想得到雇员达到累积总量之前的每月聚合值,怎么做?

对总量做一次HAVING过滤 HAVING SUM(o2.qty)

2.滑动聚合

滑动聚合是对序列内的一个滑动窗口进行的聚合计算,而不是从序列的开始计算到当前位置。

求雇员最近三个月(包括本月)的平均订单量(移动平均数),得到以下结果:

这里使用的是o2.ordmonth> 3个月之前的月份 and o2.ordmonth

3.年初至今

聚合按年单位算,如求每个雇员每年内的每个月份的聚合,该怎样写?结果如下:

所有聚合函数都会忽略NULL值,只有一个例外:Count(*)

聚合中常见的函数为分组函数GROUP BY ,要注意的是 GROUP BY 原则 select后面所有列中 没有使用聚合函数的列必须出现在GROUP BY 后面。

1 5 收藏 评论

关于作者:欢醉

因为专注,所以专业NET,UDP\\TCP开发,架构设计,数据库,Jquery插件开发,微信开发,android应用,O2O商业模式开发微信公众号【一个码农的日常】 个人主页 · 我的文章 · 4 ·    

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部