首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从原始数据构建时间窗口计数器-大型查询

从原始数据构建时间窗口计数器-大型查询
EN

Stack Overflow用户
提问于 2020-09-22 02:36:43
回答 1查看 18关注 0票数 0

考虑有关2020年购买的原始事件数据,如下表所示:

代码语言:javascript
复制
BUYER       DATE          ITEM 
Joe     '2020-01-15'      Dr. Pepper
Joe     '2020-02-15'      Dr. Pepper
Joe     '2020-03-15'      Dr. Pepper
Joe     '2020-05-15'      Dr. Pepper
Joe     '2020-10-15'      Dr. Pepper
Joe     '2020-12-15'      Dr. Pepper

我想汇总数据,看看Joe在每月移动总和中做了什么,即作为结果获得

代码语言:javascript
复制
BUYER  Date         Num_Purchases_last_3months
Joe   '2020-01-31'       1
Joe   '2020-02-31'       2
Joe   '2020-03-31'       3
Joe   '2020-04-31'       2
.
.
.
Joe   '2020-11-31'       1
Joe   '2020-12-31'       2

如何在高效的查询中获得所需的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-22 02:38:46

您可以使用窗口函数,在本例中,使用带有range窗口框架规范的count(*)

代码语言:javascript
复制
select t.*,
       count(*) over (partition by buyer
                      order by extract(year from date) * 12 + extract(month from date)
                      range between 2 preceding and current row
                     ) as Num_Purchases_last_3months
from t;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63998124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档