2017-04-21 14 views
1

は、私は2つのSQLクエリを持っている結果しかし、両方とも、カウントは合計される。これを行う簡単な方法はありますか?がテーブルに参加GoogleのBigQueryの

あなたが UNION ALL、別の集約を使用することができます

答えて

1

あなたは以下使用することができます(私はあなたがあなたの例では使用を参照することを):

#legacySQL 
SELECT subredit, SUM(cnt) as cnt 
FROM (SELECT subreddit, COUNT(subreddit) as cnt 
     FROM [fh-bigquery:reddit_comments.all] 
     WHERE author = '***********' 
     GROUP BY subreddit 
    ), 
     (SELECT subreddit, COUNT(subreddit) as cnt 
     FROM [redditcollaborativefiltering:aggregate_comments.reddit_posts_all] 
     WHERE author = '***********' 
     GROUP by subreddit 
    ) 
GROUP BY subreddit 
ORDER BY cnt DESC 

することができますようにここをクリック - レガシーSQLのコンマはUNION ALLとして使用されます

以上をさらに簡素化することができます

#legacySQL 
SELECT subreddit, COUNT(subreddit) as cnt 
FROM [fh-bigquery:reddit_comments.all], 
    [redditcollaborativefiltering:aggregate_comments.reddit_posts_all] 
WHERE author = '***********' 
GROUP BY subreddit 
ORDER BY cnt DESC 

あなたはBigQueryのレガシーSQL

ため Comma as UNION ALLについての詳細を読むことができます
1

BigQueryのレガシーSQLについては
SELECT subredit, SUM(cnt) as cnt 
FROM ((SELECT subreddit, count(subreddit) as cnt 
     FROM [fh-bigquery:reddit_comments.all] 
     WHERE author = '***********' 
     GROUP BY subreddit 
    ) UNION ALL 
     (SELECT subreddit, count(subreddit) as cnt 
     FROM [redditcollaborativefiltering:aggregate_comments.reddit_posts_all] 
     WHERE author = '***********' 
     GROUP by subreddit 
    ) 
    ) sc 
GROUP BY subreddit 
ORDER BY cnt DESC; 
関連する問題