From c950610de9daa30e0e4a3fb3572e18c5fa386076 Mon Sep 17 00:00:00 2001 From: Bas Broekhuizen Date: Thu, 4 Sep 2025 14:54:10 +0200 Subject: [PATCH 1/3] fix: wrong stats on event page --- src/queries/sql/sessions/getWebsiteSessionStats.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/queries/sql/sessions/getWebsiteSessionStats.ts b/src/queries/sql/sessions/getWebsiteSessionStats.ts index 4adaf071..d2dd86ae 100644 --- a/src/queries/sql/sessions/getWebsiteSessionStats.ts +++ b/src/queries/sql/sessions/getWebsiteSessionStats.ts @@ -29,11 +29,11 @@ async function relationalQuery( return rawQuery( ` select - count(*) as "pageviews", - count(distinct website_event.session_id) as "visitors", - count(distinct website_event.visit_id) as "visits", - count(distinct session.country) as "countries", - sum(case when website_event.event_type = 2 then 1 else 0 end) as "events" + count(*) filter (where website_event.event_type = 1) as "pageviews", + count(distinct website_event.session_id) filter (where website_event.event_type = 1) as "visitors", + count(distinct visit_id) filter (where website_event.event_type = 1) as "visits", + count(distinct session.country) filter (where website_event.event_type = 1) as "countries", + count(*) filter (where website_event.event_type = 2) as "events" from website_event ${cohortQuery} join session on website_event.session_id = session.session_id From b8b773a402be2666d21b23b44444d1a4710ade1b Mon Sep 17 00:00:00 2001 From: Bas Broekhuizen Date: Thu, 4 Sep 2025 15:19:26 +0200 Subject: [PATCH 2/3] fix: add table prefix --- src/queries/sql/sessions/getWebsiteSessionStats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/queries/sql/sessions/getWebsiteSessionStats.ts b/src/queries/sql/sessions/getWebsiteSessionStats.ts index d2dd86ae..a2477c72 100644 --- a/src/queries/sql/sessions/getWebsiteSessionStats.ts +++ b/src/queries/sql/sessions/getWebsiteSessionStats.ts @@ -31,7 +31,7 @@ async function relationalQuery( select count(*) filter (where website_event.event_type = 1) as "pageviews", count(distinct website_event.session_id) filter (where website_event.event_type = 1) as "visitors", - count(distinct visit_id) filter (where website_event.event_type = 1) as "visits", + count(distinct website_event.visit_id) filter (where website_event.event_type = 1) as "visits", count(distinct session.country) filter (where website_event.event_type = 1) as "countries", count(*) filter (where website_event.event_type = 2) as "events" from website_event From c924ef85825494237c351fa7c0aee392fb2a69f9 Mon Sep 17 00:00:00 2001 From: Bas Broekhuizen Date: Thu, 4 Sep 2025 15:46:29 +0200 Subject: [PATCH 3/3] fix: align clickhouse with prisma query --- .../sql/sessions/getWebsiteSessionStats.ts | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/queries/sql/sessions/getWebsiteSessionStats.ts b/src/queries/sql/sessions/getWebsiteSessionStats.ts index a2477c72..a3b86518 100644 --- a/src/queries/sql/sessions/getWebsiteSessionStats.ts +++ b/src/queries/sql/sessions/getWebsiteSessionStats.ts @@ -62,30 +62,30 @@ async function clickhouseQuery( sql = ` select sumIf(1, event_type = 1) as "pageviews", - uniq(session_id) as "visitors", - uniq(visit_id) as "visits", - uniq(country) as "countries", - sum(length(event_name)) as "events" + uniqIf(session_id, event_type = 1) as "visitors", + uniqIf(visit_id, event_type = 1) as "visits", + uniqIf(country, event_type = 1) as "countries", + sumIf(1, event_type = 2) as "events" from website_event ${cohortQuery} where website_id = {websiteId:UUID} - and created_at between {startDate:DateTime64} and {endDate:DateTime64} - ${filterQuery} - `; + and created_at between {startDate:DateTime64} and {endDate:DateTime64} + ${filterQuery} + `; } else { sql = ` select - sum(views) as "pageviews", - uniq(session_id) as "visitors", - uniq(visit_id) as "visits", - uniq(country) as "countries", - sum(length(event_name)) as "events" + sumIf(views, event_type = 1) as "pageviews", + uniqIf(session_id, event_type = 1) as "visitors", + uniqIf(visit_id, event_type = 1) as "visits", + uniqIf(country, event_type = 1) as "countries", + sumIf(1, event_type = 2) as "events" from website_event_stats_hourly website_event ${cohortQuery} where website_id = {websiteId:UUID} - and created_at between {startDate:DateTime64} and {endDate:DateTime64} - ${filterQuery} - `; + and created_at between {startDate:DateTime64} and {endDate:DateTime64} + ${filterQuery} + `; } return rawQuery(sql, params);