--TABLE_SUFFIX定義
--例として、1年前~昨日までのイベントテーブルを対象とします
WITH ts AS (
SELECT FORMAT_DATE("%Y%m%d",DATE_SUB(CURRENT_DATE("Asia/Tokyo"), INTERVAL 1 YEAR) AS start_date --1年前
,FORMAT_DATE("%Y%m%d",DATE_SUB(CURRENT_DATE("Asia/Tokyo"), INTERVAL 1 DAY)) AS end_date --昨日
)
--期間指定
--例として、1年前~昨日までのイベントテーブルを対象とします。
--対象としたいGCPのプロジェクト名とデータセット名を入力してください
,period AS (
SELECT event_name, event_params
FROM `プロジェクト名.データセット名.events_*`
WHERE _TABLE_SUFFIX BETWEEN (SELECT start_date FROM ts) AND (SELECT end_date FROM ts)
)
,raw_data AS (
SELECT DISTINCT event_name AS event_name
,event_params.key AS event_params_key
,CASE WHEN event_params.value.string_value is NOT NULL THEN "str"
WHEN event_params.value.int_value is NOT NULL THEN "int"
WHEN event_params.value.float_value is NOT NULL THEN "float"
WHEN event_params.value.double_value is NOT NULL THEN "double"
-- すべてのevent_params.valueがNULLの場合
ELSE "event_params_keyに値なし"
END AS data_type_of_event_params_key
FROM period
CROSS JOIN UNNEST(event_params) AS event_params
)
SELECT * FROM raw_data
ORDER BY event_name, event_params_key, data_type_of_event_params_key
;