mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 04:37:11 +01:00
Merge fbac74a4b6 into 860e6390f1
This commit is contained in:
commit
e4f570950a
1 changed files with 41 additions and 6 deletions
|
|
@ -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]);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue