teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

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

2018/11/21 06:02

投稿

akm2929
akm2929

スコア12

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,84 @@
40
40
  event_date
41
41
  )
42
42
  ```
43
- user_idはイベント毎に計測されるため、元データでは重複があります。
43
+ user_idはイベント毎に計測されるため、元データでは重複があります。
44
+
45
+
46
+ <↓saziさんの回答を自分なりに解釈して書いたコード(コピペだとエラーで、saziさんの書き方が高度でどう変えればいいかわかりませんでした。。。)>
47
+ エラーはないのですが、dau、wau、mauの数字がほぼ同じになってしまいました。
48
+
49
+ ```standardsql
50
+ with T as (
51
+ select
52
+ parse_date("%Y%m%d", event_date) event_date
53
+ , user_id
54
+ , event_name
55
+ from
56
+ `sample*`
57
+ where(
58
+ _TABLE_SUFFIX BETWEEN
59
+ "20180707" AND
60
+ FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
61
+ )
62
+ and
63
+ app_info.install_source = 'iTunes'
64
+ and
65
+ date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) > "2018-07-06"
66
+ and
67
+ user_id is not null
68
+ limit 10000000
69
+ )
70
+
71
+ , dau as (
72
+ select
73
+ event_date
74
+ ,count(distinct(user_id)) as dau_count
75
+ from
76
+ T
77
+ group by
78
+ event_date
79
+ )
80
+
81
+ , wau as (
82
+ select
83
+ event_date
84
+ ,count(distinct(user_id)) as wau_count
85
+ from
86
+ T
87
+ where
88
+ event_date between t.event_date and date_add(t.event_date,interval 7 day)
89
+ group by event_date
90
+ )
91
+
92
+ , mau as (
93
+ select
94
+ event_date
95
+ ,count(distinct(user_id)) as mau_count
96
+ from
97
+ T
98
+ where
99
+ event_date between t.event_date and date_add(t.event_date,interval 1 month)
100
+ group by event_date
101
+ )
102
+
103
+ , before_formating as (
104
+ select
105
+ dau.event_date
106
+ ,dau_count
107
+ ,wau_count
108
+ ,mau_count
109
+ from
110
+ dau
111
+ left join
112
+ wau
113
+ on
114
+ dau.event_date = wau.event_date
115
+ left join
116
+ mau
117
+ on
118
+ dau.event_date = mau.event_date
119
+ )
120
+ select *
121
+ from before_formating
122
+ order by event_date asc
123
+ ```

2

user_idの状態に関して追記

2018/11/21 06:02

投稿

akm2929
akm2929

スコア12

title CHANGED
File without changes
body CHANGED
@@ -39,4 +39,5 @@
39
39
  group by
40
40
  event_date
41
41
  )
42
- ```
42
+ ```
43
+ user_idはイベント毎に計測されるため、元データでは重複があります。

1

Tテーブルの追加

2018/11/19 09:01

投稿

akm2929
akm2929

スコア12

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,26 @@
10
10
  何を使ってどう集計すればいいのでしょうか?
11
11
  ちなみにDAUは以下のように出しています。
12
12
  ```standardsql
13
+ with T as (
14
+ select
15
+ parse_date("%Y%m%d", event_date) event_date
16
+ , user_id
17
+ , event_name
18
+ from
19
+ `sample*`
20
+ where(
21
+ _TABLE_SUFFIX BETWEEN
22
+ "20180707" AND
23
+ FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
24
+ )
25
+ and
26
+ app_info.install_source = 'iTunes'
27
+ and
28
+ date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) > "2018-07-06"
29
+ and
30
+ user_id is not null
31
+ )
32
+
13
33
  ,dau as (
14
34
  select
15
35
  event_date