@@ -71,66 +71,66 @@ export const SummaryBuilders: Record<string, SimpleQueryConfig> = {
7171
7272 return {
7373 sql : `
74- WITH base_events AS (
75- SELECT
76- session_id,
77- anonymous_id,
78- event_name,
79- toTimeZone(time, {timezone:String}) as normalized_time
80- FROM analytics.events
81- WHERE
82- client_id = {websiteId:String}
83- AND time >= parseDateTimeBestEffort({startDate:String})
84- AND time <= parseDateTimeBestEffort(concat({endDate:String}, ' 23:59:59'))
85- AND session_id != ''
86- ${ combinedWhereClause }
87- ),
88- session_metrics AS (
89- SELECT
90- session_id,
91- countIf(event_name = 'screen_view') as page_count
92- FROM base_events
93- GROUP BY session_id
94- ),
95- session_durations AS (
96- SELECT
97- session_id,
98- dateDiff('second', MIN(normalized_time), MAX(normalized_time)) as duration
99- FROM base_events
100- GROUP BY session_id
101- HAVING duration >= 0
102- ),
103- unique_visitors AS (
104- SELECT
105- countDistinct(anonymous_id) as unique_visitors
106- FROM base_events
107- WHERE event_name = 'screen_view'
108- ),
109- all_events AS (
110- SELECT
111- count() as total_events,
112- countIf(event_name = 'screen_view') as total_screen_views
113- FROM base_events
114- ),
115- bounce_sessions AS (
116- SELECT
117- countIf(page_count = 1) as bounced_sessions,
118- count() as total_sessions
119- FROM session_metrics
120- )
121- SELECT
122- sum(page_count) as pageviews,
123- (SELECT unique_visitors FROM unique_visitors) as unique_visitors,
124- (SELECT total_sessions FROM bounce_sessions) as sessions,
125- ROUND(CASE
126- WHEN (SELECT total_sessions FROM bounce_sessions) > 0
127- THEN ((SELECT bounced_sessions FROM bounce_sessions) / (SELECT total_sessions FROM bounce_sessions)) * 100
128- ELSE 0
129- END, 2) as bounce_rate,
130- ROUND(median(sd.duration), 2) as avg_session_duration,
131- (SELECT total_events FROM all_events) as total_events
132- FROM session_metrics
133- LEFT JOIN session_durations as sd ON session_metrics.session_id = sd.session_id
74+ [ WITH base_events AS (
75+ SELECT
76+ session_id,
77+ anonymous_id,
78+ event_name,
79+ toTimeZone(time, {timezone:String}) as normalized_time
80+ FROM analytics.events
81+ WHERE
82+ client_id = {websiteId:String}
83+ AND time >= parseDateTimeBestEffort({startDate:String})
84+ AND time <= parseDateTimeBestEffort(concat({endDate:String}, ' 23:59:59'))
85+ AND session_id != ''
86+ ${ combinedWhereClause }
87+ ),
88+ session_metrics AS (
89+ SELECT
90+ session_id,
91+ countIf(event_name = 'screen_view') as page_count
92+ FROM base_events
93+ GROUP BY session_id
94+ ),
95+ session_durations AS (
96+ SELECT
97+ session_id,
98+ dateDiff('second', MIN(normalized_time), MAX(normalized_time)) as duration
99+ FROM base_events
100+ GROUP BY session_id
101+ HAVING duration >= 0
102+ ),
103+ unique_visitors AS (
104+ SELECT
105+ countDistinct(anonymous_id) as unique_visitors
106+ FROM base_events
107+ WHERE event_name = 'screen_view'
108+ ),
109+ all_events AS (
110+ SELECT
111+ count() as total_events,
112+ countIf(event_name = 'screen_view') as total_screen_views
113+ FROM base_events
114+ ),
115+ bounce_sessions AS (
116+ SELECT
117+ countIf(page_count = 1) as bounced_sessions,
118+ count() as total_sessions
119+ FROM session_metrics
120+ )
121+ SELECT
122+ sum(page_count) as pageviews,
123+ (SELECT unique_visitors FROM unique_visitors) as unique_visitors,
124+ (SELECT total_sessions FROM bounce_sessions) as sessions,
125+ ROUND(CASE
126+ WHEN (SELECT total_sessions FROM bounce_sessions) > 0
127+ THEN ((SELECT bounced_sessions FROM bounce_sessions) / (SELECT total_sessions FROM bounce_sessions)) * 100
128+ ELSE 0
129+ END, 2) as bounce_rate,
130+ ROUND(median(sd.duration), 2) as avg_session_duration,
131+ (SELECT total_events FROM all_events) as total_events
132+ FROM session_metrics
133+ LEFT JOIN session_durations as sd ON session_metrics.session_id = sd.session_id]
134134 ` ,
135135 params : {
136136 websiteId,
0 commit comments