2017-08-28 5 views
0

私は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; 

実際のテーブルのスクリーンショット:タイムスタンプを変換

Screenshot

、上記セッションが実際に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

質問:

  • 何か不足していますが、その値が出力に表示されないのはなぜですか?私が想定し
    以下

答えて

1

TRY - user_dimrecordあり、そしてevent_dimrecord, repeated

#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 
+0

おかげミハイルです!それは最終調整と組み合わせて機能しました。 – Dirk

関連する問題