2017-04-11 25 views
0

我正在使用以下查詢來查詢我的項目上的多個表和數據集。前兩個union all工作正常,並會返回我想要的,我遇到的問題是,添加更多時不會添加任何其他內容到輸出。我認爲這是來自我的GROUP BY,但我不確定。任何幫助都會很棒。BigQuery當前活動查詢只返回一個app_id

預期結果應該是多個目標,而不只是一個。

WITH allTables AS (
SELECT 
    CONCAT(user_dim.app_info.app_id, ':', user_dim.app_info.app_platform) as app, 
    user_dim.app_info.app_instance_id AS users 
FROM `d1.app_events_intraday_*`, UNNEST(event_dim) AS event 
WHERE _TABLE_SUFFIX 
    BETWEEN '20170406' AND '20170406' 

UNION ALL 
SELECT 
    CONCAT(user_dim.app_info.app_id, ':', user_dim.app_info.app_platform) as app, 
    user_dim.app_info.app_instance_id AS users 
FROM `d1.app_events_*`, UNNEST(event_dim) AS event 
WHERE _TABLE_SUFFIX 
    BETWEEN '20170406' AND '20170406' 

    UNION ALL 
    SELECT 
    CONCAT(user_dim.app_info.app_id, ':', user_dim.app_info.app_platform) as app, 
    user_dim.app_info.app_instance_id AS users 
    FROM `d2.app_events_intraday_*`, UNNEST(event_dim) AS event 
    WHERE _TABLE_SUFFIX 
    BETWEEN '20170406' AND '20170406' 

    UNION ALL 
    SELECT 
    CONCAT(user_dim.app_info.app_id, ':', user_dim.app_info.app_platform) as app, 
    user_dim.app_info.app_instance_id AS users 
    FROM `d2.app_events_*`, UNNEST(event_dim) AS event 
    WHERE _TABLE_SUFFIX 
    BETWEEN '20170406' AND '20170406' 
) SELECT 
    app as target, 
    COUNT(DISTINCT(users)) AS datapoint_value, 
    UNIX_SECONDS(PARSE_TIMESTAMP('%Y%m%d', '20170406')) as datapoint_time 
FROM allTables 
GROUP BY app 

回答

2

單獨運行的最後一塊查詢:

SELECT 
    CONCAT(user_dim.app_info.app_id, ':', user_dim.app_info.app_platform) as 
    app, 
      user_dim.app_info.app_instance_id AS users 
      FROM `d2.app_events_*`, UNNEST(event_dim) AS event 
      WHERE _TABLE_SUFFIX 
      BETWEEN '20170406' AND '20170406' 
+0

似乎是問題。 –