从 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 个月的数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用月份名称获取最近 3 个月的计数,如果该月份没有记录需要使用月份名称获取 0 [重复]