我正在查询DATE字段:
SELECT DATE ,
FIELD2 ,
FIELD3
into Table_new
FROM Table_old
WHERE (criteria iLIKE '%xxxyyy%')
DATE字段从2010年10月1日开始运行,但在此过程中缺少了几天。当我导出数据时(例如,在Tableau中),我需要将数据与没有任何缺失日期的日历对齐。这意味着我需要一个空格/持有者来表示日期,即使查询中该日期不存在任何数据。我怎样才能做到这一点?
现在我正在导出数据,并手动创建一个没有日期数据的空间,效率极低。
答案 0 :(得分:2)
Tableau可以本机执行此操作。无需更改数据集。您只需确保您的DATE
字段属于Tableau中的日期类型,然后显示空列/行。
我的测试数据:
在我显示空列之前:
我如何显示空列:
显示空列后(最终结果):
如果您想限制这些日期,可以将日期字段添加到过滤器,选择日期范围和Apply to Context
。
答案 1 :(得分:1)
在Postgres中,您可以轻松生成日期:
select mm.date, t.field1, t.field2
from (select generate_series(mm.mindate, mm.maxdate, interval '1 day') as date
from (select min(date) as mindate, max(date) as maxdate
from table_old
where criteria ilike '%xxxyyy%'
) mm
) d left join
table_old t
on t.date = mm.date and
criteria ilike '%xxxyyy%';
返回条件的最小值和最大值之间的所有日期。如果您还有其他日期范围,请将其用于generate_series()
。
注意:criteria
上的最终条件需要放在on
子句而不是where
子句中。