Google BigQuery:我看到"clientId"列丢失,但实际上存在于表的架构中



Google BigQuery:当使用UNION ALL时,我的查询抛出了一个错误:
"UNION ALL 中的查询具有不匹配的列计数;查询 1 有 17 列,查询 2 有 18 列">

当我单独运行查询时,我看到"clientId"列丢失,但实际上存在于表中。请在下面找到查询。

使用分析架构时,该列怎么可能存在于一个 dataset.table 中而不存在于另一个数据集表中?

如何解决此问题?

FROM
    (
    SELECT 
        'web' AS platform
        ,a.*
        ,a._TABLE_SUFFIX AS TABLE_SUFFIX
        from `[project].[dataset for Web].ga_sessions_*` a        
     where 
      _table_suffix BETWEEN  '20190401' AND '20190401'
    ) web
UNION ALL
SELECT android.*
FROM
    (
    SELECT 
        'android' AS platform
        ,a.*
        ,a._TABLE_SUFFIX AS TABLE_SUFFIX
        from `[project].[dataset for Android].ga_sessions_*` a   
     where 
       _table_suffix BETWEEN  '20190401' AND '20190401'
    ) android```

以您的查询为基础,我运行了以下查询,该查询已正确执行:

SELECT *
FROM
(
  SELECT
    'web' AS platform,
    a.*,
    a._TABLE_SUFFIX AS TABLE_SUFFIX
  FROM
    `bigquery-public-data.google_analytics_sample.ga_sessions_*` a
  WHERE
    _table_suffix BETWEEN '20170801' AND '20170801'
  LIMIT 5) web
UNION ALL
SELECT
  android.*
FROM (
  SELECT
    'android' AS platform,
    a.*,
    a._TABLE_SUFFIX AS TABLE_SUFFIX
  FROM
    `bigquery-public-data.google_analytics_sample.ga_sessions_*` a
  WHERE
    _table_suffix BETWEEN '20170801' AND '20170801'
  LIMIT 5) android

考虑到您获取的错误消息、注释中的文档以及数据集迁移,迁移的数据集似乎不完整。

考虑到目标表上的 BigQuery 导出架构,尝试新的数据集迁移可能有助于缓解不完整的信息。

由于我没有足够的声誉,这就是发布此答案的原因。

相关内容

最新更新