-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathunion_join_sample
More file actions
138 lines (134 loc) · 6.82 KB
/
Copy pathunion_join_sample
File metadata and controls
138 lines (134 loc) · 6.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
"(SELECT
LAST_VALUE(channel IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Channel,
LAST_VALUE(Start_time IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Start_time,
LAST_VALUE(Duration IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Duration,
LAST_VALUE(Mat_ID IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS ID,
LAST_VALUE(Title IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Title,
Event_label,
Custom_dimension_2,
ga.time,
Total_events
FROM (
SELECT
CONCAT(CAST(Event_label AS string),"" "",FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', PARSE_TIMESTAMP('%Y-%m-%d %k:%M',CONCAT(CAST(Date AS string),"" "",CAST(hour AS string),"":"",CAST((CASE
WHEN LENGTH(CAST (Minute AS string)) > 1 THEN CAST(Minute AS string)
ELSE CONCAT(CAST (0 AS string),CAST (Minute AS string)) END) AS string))))) AS UniqueID,
*,
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', PARSE_TIMESTAMP('%Y-%m-%d %k:%M',CONCAT(CAST(Date AS string),"" "",CAST(hour AS string),"":"",CAST((CASE
WHEN LENGTH(CAST (Minute AS string)) > 1 THEN CAST(Minute AS string)
ELSE CONCAT(CAST (0 AS string),CAST (Minute AS string)) END) AS string)))) AS Time
FROM
`data` where Custom_dimension_2 = ""iOS"" order by time ) AS ga
LEFT JOIN (
SELECT
CONCAT(CAST((CASE
WHEN Channel= ""foo"" THEN ""xxx""
WHEN Channel= ""foobar"" THEN ""xxx""
WHEN Channel= ""barfoo"" THEN ""xxx""
ELSE NULL END) AS string),"" "",FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S',REGEXP_EXTRACT(start_time, r'(.*);')))) AS UniqueID,
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S',REGEXP_EXTRACT(start_time, r'(.*);'))) AS Start_time,
Channel,
Duration,
ID,
Title,
Template,
Resource,
Transfer_status,
Machine_status,
State
FROM
`data`
WHERE
Duration > '00:01:00:00') AS ar
ON
ga.UniqueID = ar.UniqueID)
UNION ALL
(SELECT
LAST_VALUE(channel IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Channel,
LAST_VALUE(Start_time IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Start_time,
LAST_VALUE(Duration IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Duration,
LAST_VALUE(ID IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Mat_ID,
LAST_VALUE(Title IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Title,
Event_label,
Custom_dimension_2,
ga.time,
Total_events
FROM (
SELECT
CONCAT(CAST(Event_label AS string),"" "",FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', PARSE_TIMESTAMP('%Y-%m-%d %k:%M',CONCAT(CAST(Date AS string),"" "",CAST(hour AS string),"":"",CAST((CASE
WHEN LENGTH(CAST (Minute AS string)) > 1 THEN CAST(Minute AS string)
ELSE CONCAT(CAST (0 AS string),CAST (Minute AS string)) END) AS string))))) AS UniqueID,
*,
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', PARSE_TIMESTAMP('%Y-%m-%d %k:%M',CONCAT(CAST(Date AS string),"" "",CAST(hour AS string),"":"",CAST((CASE
WHEN LENGTH(CAST (Minute AS string)) > 1 THEN CAST(Minute AS string)
ELSE CONCAT(CAST (0 AS string),CAST (Minute AS string)) END) AS string)))) AS Time
FROM
`data` where Custom_dimension_2 = ""Android"" order by time ) AS ga
LEFT JOIN (
SELECT
CONCAT(CAST((CASE
WHEN Channel= ""foo"" THEN ""xxx""
WHEN Channel= ""foobar"" THEN ""xxx""
WHEN Channel= ""barfoo"" THEN ""xxx""
ELSE NULL END) AS string),"" "",FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S',REGEXP_EXTRACT(start_time, r'(.*);')))) AS UniqueID,
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S',REGEXP_EXTRACT(start_time, r'(.*);'))) AS Start_time,
Channel,
Duration,
ID,
Title,
Template,
Resource,
Transfer_status,
Machine_status,
State
FROM
`data`
WHERE
Duration > '00:01:00:00') AS ar
ON
ga.UniqueID = ar.UniqueID)
UNION ALL
(SELECT
LAST_VALUE(channel IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Channel,
LAST_VALUE(Start_time IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Start_time,
LAST_VALUE(Duration IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Duration,
LAST_VALUE(ID IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Mat_ID,
LAST_VALUE(Title IGNORE NULLS) OVER (PARTITION BY Event_label ORDER BY ga.time ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Title,
Event_label,
Custom_dimension_2,
ga.time,
Total_events
FROM (
SELECT
CONCAT(CAST(Event_label AS string),"" "",FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', PARSE_TIMESTAMP('%Y-%m-%d %k:%M',CONCAT(CAST(Date AS string),"" "",CAST(hour AS string),"":"",CAST((CASE
WHEN LENGTH(CAST (Minute AS string)) > 1 THEN CAST(Minute AS string)
ELSE CONCAT(CAST (0 AS string),CAST (Minute AS string)) END) AS string))))) AS UniqueID,
*,
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', PARSE_TIMESTAMP('%Y-%m-%d %k:%M',CONCAT(CAST(Date AS string),"" "",CAST(hour AS string),"":"",CAST((CASE
WHEN LENGTH(CAST (Minute AS string)) > 1 THEN CAST(Minute AS string)
ELSE CONCAT(CAST (0 AS string),CAST (Minute AS string)) END) AS string)))) AS Time
FROM
`data` where Custom_dimension_2 = ""Roku"" order by time ) AS ga
LEFT JOIN (
SELECT
CONCAT(CAST((CASE
WHEN Channel= ""foo"" THEN ""xxx""
WHEN Channel= ""foobar"" THEN ""xxx""
WHEN Channel= ""barfoo"" THEN ""xxx""
ELSE NULL END) AS string),"" "",FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S',REGEXP_EXTRACT(start_time, r'(.*);')))) AS UniqueID,
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S',REGEXP_EXTRACT(start_time, r'(.*);'))) AS Start_time,
Channel,
Duration,
ID,
Title,
Template,
Resource,
Transfer_status,
Machine_status,
State
FROM
`data`
WHERE
Duration > '00:01:00:00') AS ar
ON
ga.UniqueID = ar.UniqueID)"