从 Netezza 数据库中获取最近 24 个月的数据

Posted

技术标签:

【中文标题】从 Netezza 数据库中获取最近 24 个月的数据【英文标题】:Get the last 24 months of data from Netezza database 【发布时间】:2017-03-23 18:42:40 【问题描述】:

我想从我们的 netteza 数据库中提取过去 24 个月的数据,但不包括最近两个季度(当前季度和上一季度)。数据库中日期字段的格式是这样的:YYYY-Q-MM

2015411 = Year=2016  Quarter=4  month= 11
2013108 = Year=2013  Quarter=1  month= 8

预计的时间范围应该是 2014 年 10 月到 2016 年 9 月的数据。我们使用日历年 1 月到 3 月是 Q1,4 月到 6 月是 Q2 等。这是我正在使用的查询,但它会提取过去 27 年的所有内容个月,但我只想要过去 24 个月,但不包括最近的 2 个季度。

select * from myTable where substring (month_key,1,4) || substring (month_key, 6,7) || ''01'' > CURRENT_DATE - INTERVAL ''27 months'' 

【问题讨论】:

【参考方案1】:

您可以使用内置的季度评估。

下面的查询突出显示所需的值

select add_months(to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ'),-24) as "24 months prior to 2 quarters ago"
,to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ') "2 quarters ago"

这就是你的例子:

select * from myTable 
where date_value between select add_months(to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ'),-24)
and to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ')

【讨论】:

以上是关于从 Netezza 数据库中获取最近 24 个月的数据的主要内容,如果未能解决你的问题,请参考以下文章

获取最近 X 个月的(年,月)

需要在删除和插入模式下将最近 5 个月的数据存储在表中

获取最近 4 个月 SQL Netezza 的百分比

如何使用月份名称获取最近 3 个月的计数,如果该月份没有记录需要使用月份名称获取 0 [重复]

如何从当前日期 PHP 获取最近 7 周、7 个月的日期范围?

如何在SQL中获取当前日期最近六个月的前一个月数据