首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用滚动日期条件选择数据

使用滚动日期条件选择数据
EN

Stack Overflow用户
提问于 2016-10-31 17:18:37
回答 4查看 1.4K关注 0票数 1

下面的查询返回给定月份和品牌的不同的“成员”计数(见下图)。

代码语言:javascript
复制
select to_char(transaction_date, 'YYYY-MM') as month, brand,
   count(distinct UNIQUE_MEM_ID) as distinct_count
from source.table
group by  to_char(transaction_date, 'YYYY-MM'), brand;

数据在这个月结束后有15天的延迟收集(这意味着2016年9月的月度数据要到10月15日才能达到100% )。我只关心每月的数据。

我想提出的问题是:直到本月15日(10月),上个月的数据(9月)应该反映8月份的数据。当前的部分月份(10月)应该默认为前一个月,因此也是上述逻辑的默认值。

在本月15日之后,上个月的数据(9月)现在是100%,因此9月应该反映9月(10月将反映9月至11月15日,等等)。

当前的部分月份总是=前一个月。查询的复杂性在于如何计算前一个月。

此查询将在滚动的基础上运行,因此需要是动态的。

为了明确起见,我正在尝试构建一个查询,在这个查询中,前一个月(到本月底+ 15天)的distinct_count应该反映(当前月份-2个月)的值(针对每个品牌)。当月结束后15天后,前一个月=(当前月份- 1)。

部分当月默认为前一个月的数据。15天的数值应该是可变的/可修改的。

EN

Stack Overflow用户

发布于 2016-10-31 18:03:55

下面是一些sudo代码,用于获取间隔的开始日期和结束日期。

开始日期:

date DATE_TRUNC('month', CURRENT_DATE - integer 15) - interval '1 month'

这将返回当前一个月后,只有在第15天,从那里你可以减去一个完整的月,以得到你的起点。

结束日期:要计算此值,请获取开始日期,加上一个月,减去一天。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40347191

复制
相关文章

相似问题

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