From 3a4cefef7264e32a2721d08309bdc45caf52df0d Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Fri, 19 Jul 2024 11:20:18 -0700 Subject: [PATCH] update event/pageview metrics --- .../analytics/events/getEventMetrics.ts | 14 +++++++++---- .../analytics/pageviews/getPageviewMetrics.ts | 20 ++++++++++--------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/queries/analytics/events/getEventMetrics.ts b/src/queries/analytics/events/getEventMetrics.ts index 32cccd3e..d8818bba 100644 --- a/src/queries/analytics/events/getEventMetrics.ts +++ b/src/queries/analytics/events/getEventMetrics.ts @@ -51,17 +51,23 @@ async function clickhouseQuery( eventType: EVENT_TYPE.customEvent, }); + const table = unit === 'hour' ? 'website_event_stats_hourly' : 'website_event_stats_daily'; + return rawQuery( ` select event_name x, ${getDateQuery('created_at', unit, timezone)} t, count(*) y - from website_event - where website_id = {websiteId:UUID} - and created_at between {startDate:DateTime64} and {endDate:DateTime64} - and event_type = {eventType:UInt32} + from ( + select arrayJoin(event_name) as event_name, + created_at + from ${table} website_event + where website_id = {websiteId:UUID} + and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type = {eventType:UInt32} ${filterQuery} + ) as g group by x, t order by t `, diff --git a/src/queries/analytics/pageviews/getPageviewMetrics.ts b/src/queries/analytics/pageviews/getPageviewMetrics.ts index 34d26d9d..f1c316d2 100644 --- a/src/queries/analytics/pageviews/getPageviewMetrics.ts +++ b/src/queries/analytics/pageviews/getPageviewMetrics.ts @@ -100,7 +100,7 @@ async function clickhouseQuery( let columnAgg = column; let excludeDomain = ''; if (column === 'referrer_domain') { - excludeDomain = `and referrer_domain != {websiteDomain:String} and referrer_domain != ''`; + excludeDomain = `and t != {websiteDomain:String} and t != ''`; } if (type === 'entry') { @@ -111,17 +111,19 @@ async function clickhouseQuery( columnAgg = `argMaxMerge(${column})`; } - const table = unit === 'hour' ? 'website_event_metric_hourly' : 'website_event_metric_daily'; + const table = unit === 'hour' ? 'website_event_stats_hourly' : 'website_event_stats_daily'; return rawQuery( ` - select ${column} x, sum(views) y - from ${table} website_event - where website_id = {websiteId:UUID} - and created_at between {startDate:DateTime64} and {endDate:DateTime64} - and event_type = {eventType:UInt32} - ${excludeDomain} - ${filterQuery} + select g.t as x, + count(*) as y + from ( + select arrayJoin(${column}) as t + from ${table} website_event + where website_id = {websiteId:UUID} + and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type = {eventType:UInt32} + ${filterQuery}) as g group by x order by y desc limit ${limit}