私はStandardSQLをかなり使い慣れていて、指定された日付(2017年6月1日)にインストールされたユーザーのRaw BigQueryログデータを最初の3週間のセッションデータとともにインストール日後(D0-D20)。Raw BigQuery第1日目のインストーラのログデータ
#StandardSQL
SELECT user_dim.first_open_timestamp_micros, user_dim.app_info.app_instance_id, event_dim.date, event_dim.name, event_dim.timestamp_micros, event_dim.previous_timestamp_micros
FROM `your_table_id.app_events_*`
WHERE _TABLE_SUFFIX BETWEEN '20170601' AND '20170621' AND
(SELECT user_dim.first_open_timestamp_micros
FROM UNNEST(user_dim) AS user
WHERE user.first_open_timestamp_micros BETWEEN 1496275200000 AND 1496361600000);
私は次の出力を取得しています:「UNNESTで参照値は配列でなければなりませんUNNESTは、型構造体の表現が含まれています。」。私の最初の質問は:私は適切な出力を与えるために、これを配列に変換する方法は?ミハイルの答えの後
更新:実行
次のクエリが、出力として任意のデータを与えていません。実際のテーブル(スクリーンショットを表示)をプレビューすると、テーブルに存在する値が出力の一部になるはずなので、表示されるはずのユーザーがいるはずです。
#standardSQL
SELECT
user_dim.first_open_timestamp_micros,
user_dim.app_info.app_instance_id,
event.date, event.name,
event.timestamp_micros,
event.previous_timestamp_micros
FROM `your_table_id.app_events_*`, UNNEST(event_dim) AS event
WHERE _TABLE_SUFFIX BETWEEN '20170601' AND '20170621'
AND user_dim.first_open_timestamp_micros BETWEEN 1496275200000 AND 1496361600000
LIMIT 10;
実際のテーブルのスクリーンショット:タイムスタンプを変換
、上記セッションが実際に2 user_dim.first_open_timestamp_micros-結果の中央に表示すべきであることを示しているが、しない...
1496275200000変換: タイムスタンプはミリ秒単位であるさ: GMT:2017年6月1日(木曜日)午前12:00:00 あなたのタイムゾーン:2017年6月1日(木曜日)2時00分00秒AM GMT + 02:00 DST
1496353126947000変換: このタイムスタンプはマイクロ秒(1/1,000,000秒)であると仮定します。 GMT:2017年6月1日木曜日9:38:46.947 PM タイムゾーン:2017年6月1日木曜日11:38:46.947 PMこのタイムスタンプはミリ秒単位であると仮定すると :GMT + 02:00 DST
14963.616億変換さ GMT:2017年6月2日(金曜日)12時00分00秒AM あなたのタイムゾーン:2017年6月2日(金曜日)午前2時00分00秒AM GMT + 02:00 DST
質問:
- 何か不足していますが、その値が出力に表示されないのはなぜですか?私が想定し
以下
おかげミハイルです!それは最終調整と組み合わせて機能しました。 – Dirk