而不是使用UNIOn ALL,您应该尝试使用
Querying Multiple Tables Using a WildcardTable
尝试以下类似的方法
#standardSQLWITH allTables AS ( SELECt CONCAt(user_dim.app_info.app_instance_id, ':', user_dim.app_info.app_platform) AS app, event.date, user_dim.app_info.app_instance_id AS users FROM `dataset.app_events_intraday_*`, UNNEST(event_dim) AS event WHERe _TABLE_SUFFIX BETWEEN '20170401' AND '20170407' UNIOn ALL SELECt CONCAt(user_dim.app_info.app_instance_id, ':', user_dim.app_info.app_platform) AS app, event.date, user_dim.app_info.app_instance_id AS users FROM `dataset.app_events_*`, UNNEST(event_dim) AS event WHERe _TABLE_SUFFIX BETWEEN '20170401' AND '20170407' ) SELECt COUNT(DISTINCT(users)) AS unique, COUNT(users) AS totalFROM allTables
您可以在下面的for
WHERe子句中使用使其更通用
WHERe _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 6 DAY)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())另请注意:我改变
app_id在
user_dim.app_info.app_id给
app_instance_id,我认为这是在你的身边错字-
但我可能是错的



