摘要: 此时有个新需求,希望查看部门 D02 内,销售记录时间最早,销售量最小的记录。即希望得到这样的信息D02 2014/3/6 G01 430这样,就需要用keep(dense_rank first/last)来帮助处理 关于使用keep(dense_rank first/last) 会有一些疑问1.k 阅读全文
posted @ 2017-10-25 16:44 一枚程序员 阅读(3089) 评论(1) 推荐(2) 编辑
摘要: first_value()和last_value()字面意思已经很直观了,取首尾记录值。例:查询部门最早发生销售记录日期和最近发生的销售记录日期 看结果first_value()很直观,不用多解释但是,last_value()值,部门D01不是应该为2014/6/12,部门D02不是应该为2014/ 阅读全文
posted @ 2017-10-25 11:26 一枚程序员 阅读(24467) 评论(1) 推荐(1) 编辑
摘要: 通过rank()、dense_rank()、row_number()对记录进行全排列、分组排列取值但有时候,会遇到空值的情况,空值会影响得到的结果的正确性,如下所查。 我们可以看到部门D01中的销售数量为NULL的记录排名居然是第一,这显然是不对的。 此时,就需要用到nulls last来处理处理后 阅读全文
posted @ 2017-10-25 11:00 一枚程序员 阅读(15226) 评论(2) 推荐(1) 编辑
摘要: 很多需求中都涉及到统计:均值、累计、范围均值、相邻记录比较等。这些操作会统计多次,或有明确的统计范围,或返回的记录统计的数据集不同... 根据场景不同可分为如下几类: 1. 全统计 2. 滚动统计 3. 范围统计 4. (相邻)行比较 构建测试数据: 一.全统计最常用的全统计就是均值或求和,有时会要 阅读全文
posted @ 2017-10-25 10:40 一枚程序员 阅读(19879) 评论(0) 推荐(1) 编辑
摘要: (1)rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。 (2)dense_rank函数返回一个唯一的值,除非当碰到相同数据时,此时所有相同数据的排名都是一样的。(3)row_number函数返回一个唯一的 阅读全文
posted @ 2017-10-25 09:40 一枚程序员 阅读(30975) 评论(0) 推荐(2) 编辑