特定の2期間で、ユーザー数、翌週再訪率を比較したいが、以下のように書いたところ、2つの期間それぞれ別でほしいデータがでてきて、最後のCLとFIの2つのビューをどうjoinさせればいいのかわからなくなった。
standardsql
1#standardsql 2--UUのidとインストール日のビュー 3with q_users as ( 4 select 5 user_id 6 ,parse_date("%Y%m%d",min(event_date)) as DLday 7 from 8 `テーブル` 9 ,unnest(event_params) as event_params 10 where 11 _TABLE_SUFFIX between "20180707" 12 and 13 FORMAT_DATE("%Y%m%d" ,DATE_SUB(CURRENT_DATE() ,interval 1 DAY)) 14 and 15 event_name = "select_content" 16 and 17 event_params.key ="item_name" 18 and ( 19 event_params.value.string_value = 'x_close_button' 20 or 21 event_params.value.string_value = 'x_done_button' 22 ) 23 and 24 app_info.install_source = 'iTunes' 25 and 26 date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) > "日付" 27 and 28 date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) < CURRENT_DATE('Asia/Tokyo') 29 and 30 date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) = parse_date("%Y%m%d", event_date) 31 and 32 user_id is not null 33 group by 34 user_id 35 limit 10000 36) 37 38, T1 as ( 39 select q_users.user_id 40 ,DLday 41 ,case 42 when isReturned is null then false 43 else isReturned 44 end isReturned 45 46 from 47 q_users 48 left join 49 `翌週再訪のテーブル(id | 再訪してたらtrue)` as W1Returned_Users 50 on 51 q_users.user_id = W1Returned_Users.id 52) 53 54,CL as ( 55 select 56 57 count(*) user_count 58 ,countif(isReturned) w1_user_count 59 ,countif(isReturned)/count(*) return_ratio 60 from 61 T1 62 where 63 DLday between 'yyyy-mm-dd' and 'yyyy-mm-dd' 64) 65 66,FI as ( 67 select 68 69 count(*) user_count 70 ,countif(isReturned) w1_user_count 71 ,countif(isReturned)/count(*) return_ratio 72 from 73 T1 74 where 75 DLday between 'yyyy-mm-dd' and 'yyyy-mm-dd' 76) 77 78 79
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/31 03:11
2018/10/31 03:16
2018/10/31 13:57