首页 文章

找不到数据库列名称

提问于
浏览
1

我不得不转移我的一些Google BigQuery表,现在一些数据存储仪表板不再工作了 . 我检查了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内找不到名称列” . 我在查询中的这个日期中确实有列 . 还有其他表格,早期日期,没有列 . 但是,当我只看一个日期时,这不应该影响结果 . 在我重新命名表之前它曾经工作过 .

任何一个想法如何解决它所以再次工作?

2 回答

  • 0

    BigQuery使用与通配符匹配的最近创建的表的模式作为通配符表的模式 .
    注意:之后应用WHERE子句,因此您的案例中的模式不是来自WHERE子句中的日期表 - 根本不是

    要解决这个问题 - 您可以使用匹配的表名和您期望的架构创建新的空表 . 当然,这将有效,直到您创建了一个缺少该列的架构创建的新表

    所以,最好的方法是在这些表的“族”之间保持一致的模式 - 具有相似名称的表,您希望使用_TABLE_SUFFIX以这种方式查询这些表

  • 2

    使用 _TABLE_SUFFIX 时,这是一个常见问题 . 所有表必须具有SAME架构 . 查询需要编译 .

    因此,早期的表格也必须具有“名称” . 您可以修补这些表并为其添加“名称” . 您可以修补甚至通过任何自动导出工具为您创建的表:分析,firebase,计费导出 .

相关问题