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