implement cohorts to clickhouse/pg library and all relevant queries

This commit is contained in:
Francis Cao 2025-07-03 12:06:49 -07:00
parent a753809a74
commit e75d009df3
22 changed files with 220 additions and 10983 deletions

View file

@ -12,7 +12,7 @@ export async function getRealtimeActivity(...args: [websiteId: string, filters:
async function relationalQuery(websiteId: string, filters: QueryFilters) {
const { rawQuery, parseFilters } = prisma;
const { params, filterQuery, dateQuery } = await parseFilters(websiteId, filters);
const { params, filterQuery, cohortQuery, dateQuery } = await parseFilters(websiteId, filters);
return rawQuery(
`
@ -27,6 +27,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
website_event.url_path as "urlPath",
website_event.referrer_domain as "referrerDomain"
from website_event
${cohortQuery}
inner join session
on session.session_id = website_event.session_id
where website_event.website_id = {{websiteId::uuid}}
@ -41,7 +42,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
async function clickhouseQuery(websiteId: string, filters: QueryFilters): Promise<{ x: number }> {
const { rawQuery, parseFilters } = clickhouse;
const { params, filterQuery, dateQuery } = await parseFilters(websiteId, filters);
const { params, filterQuery, cohortQuery, dateQuery } = await parseFilters(websiteId, filters);
return rawQuery(
`
@ -56,6 +57,7 @@ async function clickhouseQuery(websiteId: string, filters: QueryFilters): Promis
url_path as urlPath,
referrer_domain as referrerDomain
from website_event
${cohortQuery}
where website_id = {websiteId:UUID}
${filterQuery}
${dateQuery}