2017-06-22 3 views
0

カウントユーザー

enter image description here

私はこれらの4つのテーブルからユーザーをカウントする必要がある、と整理このようなテーブルへの情報:

enter image description here

次のクエリでは、すべての既存のテーブルの<projectID>:<dataset>.<tableID>パスを返します。現在のところ:

SELECT CONCAT(project_id, ':', dataset_id, '.', table_id) AS paths, 
FROM [<projectID>:<dataset>.__TABLES__] 
WHERE MSEC_TO_TIMESTAMP(creation_time) < DATE_ADD(CURRENT_TIMESTAMP(), 0, 'DAY') 

以前のすべてのパスについてGoogle Bigqueryでカウントを反復するにはどうすればよいですか?

答えて

3

Wildcard tablesは、_TABLE_SUFFIX予約された列を引き出すことによってこのトリックを行う必要があります。

#standardsql 
SELECT 
    COUNT(*) AS lazy_count, 
    _TABLE_SUFFIX AS table 
FROM 
    `bigquery-public-data.noaa_gsod.*` 
GROUP BY 
    table 

enter image description here

:私はあなたがカウントされているかわからないんだけど、私はただ怠惰なCOUNT(*)を使用しました。これを必要な列に変更するだけで済みます。

+0

あなたの答えに感謝します。どのようにレガシーSQLにそれをtransalte?私はTABLE_QUERY()ワイルドカード関数を使用しようとします。 –

+2

なぜあなたは遺産を使いたいですか?これ以上使用することはお勧めしません。 –

+0

私のすべてのクエリは従来のsqlに書き込まれているので、すべてのコードを移行する時間がありません。私は両方のクエリを組み合わせることができますか? #legacySQL SELECT .... FROM ..... #standardSQL SELECT .... FROM .... –