目标:在众多数据中,查询最近12个月的信息,以下我想要处理的数据
select to_char(to_date(year||month,'YYYYMM'),'YYYY-MM') object_type,value
from STAT_AIM_DWFH
可以看到,上面的表格一共有13条数据,从2018-03到2019-03,那么我们想要的是最近12个月的信息,即2018-04到2019-03到信息
查询过去12个月的信息。主要利用临时表left join 你想要处理的数据实现
临时表代码展示如下:
SELECT TO_CHAR(ADD_MONTHS(sysdate, ROWNUM -12 - 1),'YYYY-MM') object_type,ROWNUM rn
FROM DUAL
CONNECT BY ROWNUM <= 12
临时表结果如下:
实现需求的代码如下
select du.object_type,VALUE from (
SELECT TO_CHAR(ADD_MONTHS(sysdate, ROWNUM -12 - 1),'YYYY-MM') object_type,ROWNUM rn
FROM DUAL
CONNECT BY ROWNUM <= 12) du
left join
(select to_char(to_date(year||month,'YYYYMM'),'YYYY-MM') object_type,value
from STAT_AIM_DWFH
) DWFH on du.object_type=DWFH.object_type
效果如下:
最后,如果在使用上述代码时候,mapper报错的话,请注意将小于号转义。