我在Google大查询中有几个大表。每个表包含相同的列。桌子按月分开。例如。all_relevant_data_january,all_relevant_data_february等。
我想将所有这些数据放入Tableau中以在仪表板中显示,但只使用过滤器或参数一次致电1个月。这是该月的数据仅返回的数据。
我可以在Tableau中创建自定义SQL连接,该连接使用参数仅调用我需要的表。例如。
从中选择 *all_relevant_data_*where monthyear = [月参数]
还是我最好将其全部转储到1个表中,然后使用参数?例如
从中选择 *all_relevant_data_all_monthswhere monthyear = [月参数]
如果我要这样做,它将所有数据加载到Tableau中,还是只能在仪表板上选择哪个月?
我一直在Tableau与TableDaterange挣扎,如果可以的话,不知道该怎么做。
任何帮助都得到了很大的收到。
谢谢。
听起来您对通配符表感兴趣。大多数不利用分区表的用户都设置了其桌子,上面有诸如20170101
,20170201
,20170301
等的后缀。
SELECT * FROM `All_relevant_data_*`
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170301';
如果您的表确实具有January
和February
等后缀,则您仍然可以使此方法起作用,例如通过从名称中提取月号:
SELECT * FROM `All_relevant_data_*`
WHERE EXTRACT(MONTH FROM PARSE_DATE('%B', _TABLE_SUFFIX)) BETWEEN
1 AND 3;
如果您想要一个返回月列以分别过滤的查询,则可以使用以下修改的表格之一:
-- Assumes that _TABLE_SUFFIX is e.g. 20170314
SELECT *, PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) AS date
FROM `All_relevant_data_*`;
或:
-- Assumes that _TABLE_SUFFIX is e.g. January
SELECT *, EXTRACT(MONTH FROM PARSE_DATE('%B', _TABLE_SUFFIX)) AS month_number
FROM `All_relevant_data_*`;