質問編集履歴

3

saziさんの回答を参考に書いたコードの追記。

2018/11/21 06:02

投稿

akm2929
akm2929

スコア12

test CHANGED
File without changes
test CHANGED
@@ -83,3 +83,163 @@
83
83
  ```
84
84
 
85
85
  user_idはイベント毎に計測されるため、元データでは重複があります。
86
+
87
+
88
+
89
+
90
+
91
+ <↓saziさんの回答を自分なりに解釈して書いたコード(コピペだとエラーで、saziさんの書き方が高度でどう変えればいいかわかりませんでした。。。)>
92
+
93
+ エラーはないのですが、dau、wau、mauの数字がほぼ同じになってしまいました。
94
+
95
+
96
+
97
+ ```standardsql
98
+
99
+ with T as (
100
+
101
+ select
102
+
103
+ parse_date("%Y%m%d", event_date) event_date
104
+
105
+ , user_id
106
+
107
+ , event_name
108
+
109
+ from
110
+
111
+ `sample*`
112
+
113
+ where(
114
+
115
+ _TABLE_SUFFIX BETWEEN
116
+
117
+ "20180707" AND
118
+
119
+ FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
120
+
121
+ )
122
+
123
+ and
124
+
125
+ app_info.install_source = 'iTunes'
126
+
127
+ and
128
+
129
+ date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) > "2018-07-06"
130
+
131
+ and
132
+
133
+ user_id is not null
134
+
135
+ limit 10000000
136
+
137
+ )
138
+
139
+
140
+
141
+ , dau as (
142
+
143
+ select
144
+
145
+ event_date
146
+
147
+ ,count(distinct(user_id)) as dau_count
148
+
149
+ from
150
+
151
+ T
152
+
153
+ group by
154
+
155
+ event_date
156
+
157
+ )
158
+
159
+
160
+
161
+ , wau as (
162
+
163
+ select
164
+
165
+ event_date
166
+
167
+ ,count(distinct(user_id)) as wau_count
168
+
169
+ from
170
+
171
+ T
172
+
173
+ where
174
+
175
+ event_date between t.event_date and date_add(t.event_date,interval 7 day)
176
+
177
+ group by event_date
178
+
179
+ )
180
+
181
+
182
+
183
+ , mau as (
184
+
185
+ select
186
+
187
+ event_date
188
+
189
+ ,count(distinct(user_id)) as mau_count
190
+
191
+ from
192
+
193
+ T
194
+
195
+ where
196
+
197
+ event_date between t.event_date and date_add(t.event_date,interval 1 month)
198
+
199
+ group by event_date
200
+
201
+ )
202
+
203
+
204
+
205
+ , before_formating as (
206
+
207
+ select
208
+
209
+ dau.event_date
210
+
211
+ ,dau_count
212
+
213
+ ,wau_count
214
+
215
+ ,mau_count
216
+
217
+ from
218
+
219
+ dau
220
+
221
+ left join
222
+
223
+ wau
224
+
225
+ on
226
+
227
+ dau.event_date = wau.event_date
228
+
229
+ left join
230
+
231
+ mau
232
+
233
+ on
234
+
235
+ dau.event_date = mau.event_date
236
+
237
+ )
238
+
239
+ select *
240
+
241
+ from before_formating
242
+
243
+ order by event_date asc
244
+
245
+ ```

2

user_idの状態に関して追記

2018/11/21 06:02

投稿

akm2929
akm2929

スコア12

test CHANGED
File without changes
test CHANGED
@@ -81,3 +81,5 @@
81
81
  )
82
82
 
83
83
  ```
84
+
85
+ user_idはイベント毎に計測されるため、元データでは重複があります。

1

Tテーブルの追加

2018/11/19 09:01

投稿

akm2929
akm2929

スコア12

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,46 @@
22
22
 
23
23
  ```standardsql
24
24
 
25
+ with T as (
26
+
27
+ select
28
+
29
+ parse_date("%Y%m%d", event_date) event_date
30
+
31
+ , user_id
32
+
33
+ , event_name
34
+
35
+ from
36
+
37
+ `sample*`
38
+
39
+ where(
40
+
41
+ _TABLE_SUFFIX BETWEEN
42
+
43
+ "20180707" AND
44
+
45
+ FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
46
+
47
+ )
48
+
49
+ and
50
+
51
+ app_info.install_source = 'iTunes'
52
+
53
+ and
54
+
55
+ date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) > "2018-07-06"
56
+
57
+ and
58
+
59
+ user_id is not null
60
+
61
+ )
62
+
63
+
64
+
25
65
  ,dau as (
26
66
 
27
67
  select