From d460e313d89d93346cf4bd5ba308338a5a65ed2d Mon Sep 17 00:00:00 2001 From: mod08 Date: Fri, 9 Jan 2026 10:04:06 +0100 Subject: [PATCH 1/2] Remove eventType variable from relational and clickhouse queries --- src/queries/sql/reports/getGoal.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/queries/sql/reports/getGoal.ts b/src/queries/sql/reports/getGoal.ts index 7e790ff4..605c5919 100644 --- a/src/queries/sql/reports/getGoal.ts +++ b/src/queries/sql/reports/getGoal.ts @@ -29,7 +29,6 @@ async function relationalQuery( ) { const { startDate, endDate, type, value } = parameters; const { rawQuery, parseFilters } = prisma; - const eventType = type === 'path' ? EVENT_TYPE.pageView : EVENT_TYPE.customEvent; const column = type === 'path' ? 'url_path' : 'event_name'; const { filterQuery, dateQuery, joinSessionQuery, cohortQuery, queryParams } = parseFilters({ ...filters, @@ -37,7 +36,6 @@ async function relationalQuery( value, startDate, endDate, - eventType, }); return rawQuery( @@ -71,7 +69,6 @@ async function clickhouseQuery( ) { const { startDate, endDate, type, value } = parameters; const { rawQuery, parseFilters } = clickhouse; - const eventType = type === 'path' ? EVENT_TYPE.pageView : EVENT_TYPE.customEvent; const column = type === 'path' ? 'url_path' : 'event_name'; const { filterQuery, dateQuery, cohortQuery, queryParams } = parseFilters({ ...filters, @@ -79,7 +76,6 @@ async function clickhouseQuery( value, startDate, endDate, - eventType, }); return rawQuery( From fbac74a4b611b0a1b94f8e995e65798c537a999f Mon Sep 17 00:00:00 2001 From: mod08 Date: Fri, 9 Jan 2026 10:22:31 +0100 Subject: [PATCH 2/2] Refactor goal query filters to separate eventType handling for total and goal-specific counts --- src/queries/sql/reports/getGoal.ts | 51 ++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/src/queries/sql/reports/getGoal.ts b/src/queries/sql/reports/getGoal.ts index 605c5919..7e74f06c 100644 --- a/src/queries/sql/reports/getGoal.ts +++ b/src/queries/sql/reports/getGoal.ts @@ -29,15 +29,35 @@ async function relationalQuery( ) { const { startDate, endDate, type, value } = parameters; const { rawQuery, parseFilters } = prisma; + const eventType = type === 'path' ? EVENT_TYPE.pageView : EVENT_TYPE.customEvent; const column = type === 'path' ? 'url_path' : 'event_name'; - const { filterQuery, dateQuery, joinSessionQuery, cohortQuery, queryParams } = parseFilters({ + + // Filters WITHOUT eventType for total count (all sessions) + const { + filterQuery: baseFilterQuery, + dateQuery, + joinSessionQuery, + cohortQuery, + queryParams: baseQueryParams, + } = parseFilters({ + ...filters, + websiteId, + startDate, + endDate, + }); + + // Filters WITH eventType for goal-specific count + const { filterQuery: goalFilterQuery, queryParams: goalQueryParams } = parseFilters({ ...filters, websiteId, value, startDate, endDate, + eventType, }); + const queryParams = { ...baseQueryParams, ...goalQueryParams }; + return rawQuery( ` select count(distinct website_event.session_id) as num, @@ -48,7 +68,7 @@ async function relationalQuery( ${joinSessionQuery} where website_event.website_id = {{websiteId::uuid}} ${dateQuery} - ${filterQuery} + ${baseFilterQuery} ) as total from website_event ${cohortQuery} @@ -56,7 +76,7 @@ async function relationalQuery( where website_event.website_id = {{websiteId::uuid}} and ${column} = {{value}} ${dateQuery} - ${filterQuery} + ${goalFilterQuery} `, queryParams, ).then(results => results?.[0]); @@ -69,15 +89,34 @@ async function clickhouseQuery( ) { const { startDate, endDate, type, value } = parameters; const { rawQuery, parseFilters } = clickhouse; + const eventType = type === 'path' ? EVENT_TYPE.pageView : EVENT_TYPE.customEvent; const column = type === 'path' ? 'url_path' : 'event_name'; - const { filterQuery, dateQuery, cohortQuery, queryParams } = parseFilters({ + + // Filters WITHOUT eventType for total count (all sessions) + const { + filterQuery: baseFilterQuery, + dateQuery, + cohortQuery, + queryParams: baseQueryParams, + } = parseFilters({ + ...filters, + websiteId, + startDate, + endDate, + }); + + // Filters WITH eventType for goal-specific count + const { filterQuery: goalFilterQuery, queryParams: goalQueryParams } = parseFilters({ ...filters, websiteId, value, startDate, endDate, + eventType, }); + const queryParams = { ...baseQueryParams, ...goalQueryParams }; + return rawQuery( ` select count(distinct session_id) as num, @@ -87,14 +126,14 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} ${dateQuery} - ${filterQuery} + ${baseFilterQuery} ) as total from website_event ${cohortQuery} where website_id = {websiteId:UUID} and ${column} = {value:String} ${dateQuery} - ${filterQuery} + ${goalFilterQuery} `, queryParams, ).then(results => results?.[0]);