This commit is contained in:
mod08 2026-01-09 09:22:39 +00:00 committed by GitHub
commit e4f570950a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -31,7 +31,23 @@ async function relationalQuery(
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,
@ -40,6 +56,8 @@ async function relationalQuery(
eventType,
});
const queryParams = { ...baseQueryParams, ...goalQueryParams };
return rawQuery(
`
select count(distinct website_event.session_id) as num,
@ -50,7 +68,7 @@ async function relationalQuery(
${joinSessionQuery}
where website_event.website_id = {{websiteId::uuid}}
${dateQuery}
${filterQuery}
${baseFilterQuery}
) as total
from website_event
${cohortQuery}
@ -58,7 +76,7 @@ async function relationalQuery(
where website_event.website_id = {{websiteId::uuid}}
and ${column} = {{value}}
${dateQuery}
${filterQuery}
${goalFilterQuery}
`,
queryParams,
).then(results => results?.[0]);
@ -73,7 +91,22 @@ async function clickhouseQuery(
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,
@ -82,6 +115,8 @@ async function clickhouseQuery(
eventType,
});
const queryParams = { ...baseQueryParams, ...goalQueryParams };
return rawQuery(
`
select count(distinct session_id) as num,
@ -91,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]);