我必须转移一些Google BigQuery表,现在某些datastudio仪表板不再起作用。我检查了查询Datastudio运行。它是这样做的:
SELECT t0.column, SUM(t0.value) AS t0_qt_weezwy5dnb FROM
(SELECT * FROM `table_*` WHERE _TABLE_SUFFIX BETWEEN '20180726' AND '20180726')
AS t0 GROUP BY t0.column ORDER BY t0.column DESC;
但是它给我错误“ t0内未找到名称列”。我可以肯定在查询中的这一日期中的列。还有其他具有较早日期的表,没有该列。但是,当我仅查看该日期时,这不应影响结果。在我重命名表之前,它曾经可以工作。
有谁知道如何解决它,因此又可以起作用?
答案 0 :(得分:2)
BigQuery使用与通配符匹配的最新创建的表的架构作为通配符表的架构。
注意:之后将应用WHERE子句,因此您所用的模式不是来自WHERE子句中日期的表-根本不是
要解决此问题-您可以使用匹配的表名和所需的架构创建新的空表。当然,这将一直有效,直到您使用缺少该列的架构创建新表
因此,最好的方法是在此类表的“族”中保持一致的架构-希望使用_TABLE_SUFFIX以这种方式查询的具有相似名称的表
答案 1 :(得分:0)
使用_TABLE_SUFFIX
时这是一个常见问题。所有表都必须具有SAME模式。查询需要编译。
因此,较早的表也必须具有“名称”。您可以修补这些表并在其中添加“名称”。您甚至可以修补通过任何自动导出工具为您创建的表格:分析,firebase,计费导出。