improve revenue joins and event_data joins to website_event
Some checks are pending
Create docker images (cloud) / Build, push, and deploy (push) Waiting to run
Node.js CI / build (postgresql, 18.18, 10) (push) Waiting to run

This commit is contained in:
Francis Cao 2026-01-19 12:46:21 -08:00
parent 2bd0734162
commit cd6a28ea4a
6 changed files with 65 additions and 33 deletions

View file

@ -93,11 +93,15 @@ async function clickhouseQuery(
string_value as propertyValue, string_value as propertyValue,
count(*) as total count(*) as total
from event_data from event_data
join website_event any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.event_id = event_data.event_id on website_event.event_id = event_data.event_id
and website_event.session_id = event_data.session_id
and website_event.website_id = event_data.website_id and website_event.website_id = event_data.website_id
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${cohortQuery} ${cohortQuery}
where event_data.website_id = {websiteId:UUID} where event_data.website_id = {websiteId:UUID}
and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64} and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64}
@ -120,11 +124,15 @@ async function clickhouseQuery(
data_type as dataType, data_type as dataType,
count(*) as total count(*) as total
from event_data from event_data
join website_event any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.event_id = event_data.event_id on website_event.event_id = event_data.event_id
and website_event.session_id = event_data.session_id
and website_event.website_id = event_data.website_id and website_event.website_id = event_data.website_id
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${cohortQuery} ${cohortQuery}
where event_data.website_id = {websiteId:UUID} where event_data.website_id = {websiteId:UUID}
and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64} and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64}

View file

@ -65,11 +65,15 @@ async function clickhouseQuery(
string_value) as "value", string_value) as "value",
count(*) as "total" count(*) as "total"
from event_data from event_data
join website_event any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.event_id = event_data.event_id on website_event.event_id = event_data.event_id
and website_event.session_id = event_data.session_id
and website_event.website_id = event_data.website_id and website_event.website_id = event_data.website_id
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${cohortQuery} ${cohortQuery}
where event_data.website_id = {websiteId:UUID} where event_data.website_id = {websiteId:UUID}
and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64} and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64}

View file

@ -69,11 +69,15 @@ async function clickhouseQuery(
data_key as propertyName, data_key as propertyName,
count(*) as total count(*) as total
from event_data from event_data
join website_event any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.event_id = event_data.event_id on website_event.event_id = event_data.event_id
and website_event.session_id = event_data.session_id
and website_event.website_id = event_data.website_id and website_event.website_id = event_data.website_id
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${cohortQuery} ${cohortQuery}
where event_data.website_id = {websiteId:UUID} where event_data.website_id = {websiteId:UUID}
and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64} and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64}

View file

@ -72,11 +72,15 @@ async function clickhouseQuery(
data_key, data_key,
count(*) as "total" count(*) as "total"
from event_data from event_data
join website_event any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.event_id = event_data.event_id on website_event.event_id = event_data.event_id
and website_event.session_id = event_data.session_id
and website_event.website_id = event_data.website_id and website_event.website_id = event_data.website_id
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${cohortQuery} ${cohortQuery}
where event_data.website_id = {websiteId:UUID} where event_data.website_id = {websiteId:UUID}
and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64} and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64}

View file

@ -72,11 +72,15 @@ async function clickhouseQuery(
string_value) as "value", string_value) as "value",
count(*) as "total" count(*) as "total"
from event_data from event_data
join website_event any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.event_id = event_data.event_id on website_event.event_id = event_data.event_id
and website_event.session_id = event_data.session_id
and website_event.website_id = event_data.website_id and website_event.website_id = event_data.website_id
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${cohortQuery} ${cohortQuery}
where event_data.website_id = {websiteId:UUID} where event_data.website_id = {websiteId:UUID}
and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64} and event_data.created_at between {startDate:DateTime64} and {endDate:DateTime64}

View file

@ -43,12 +43,14 @@ async function relationalQuery(
const joinQuery = const joinQuery =
filterQuery || cohortQuery filterQuery || cohortQuery
? `join website_event ? `join (select *
from website_event
where website_id = {{websiteId::uuid}}
and created_at between {{startDate}} and {{endDate}}
and event_type = 2) website_event
on website_event.website_id = revenue.website_id on website_event.website_id = revenue.website_id
and website_event.session_id = revenue.session_id and website_event.session_id = revenue.session_id
and website_event.event_id = revenue.event_id and website_event.event_id = revenue.event_id`
and website_event.website_id = {{websiteId::uuid}}
and website_event.created_at between {{startDate}} and {{endDate}}`
: ''; : '';
const chart = await rawQuery( const chart = await rawQuery(
@ -130,12 +132,15 @@ async function clickhouseQuery(
}); });
const joinQuery = filterQuery const joinQuery = filterQuery
? `join website_event ? `any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.website_id = website_revenue.website_id on website_event.website_id = website_revenue.website_id
and website_event.session_id = website_revenue.session_id and website_event.session_id = website_revenue.session_id
and website_event.event_id = website_revenue.event_id and website_event.event_id = website_revenue.event_id`
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}`
: ''; : '';
const chart = await rawQuery< const chart = await rawQuery<
@ -174,12 +179,15 @@ async function clickhouseQuery(
website_event.country as name, website_event.country as name,
sum(website_revenue.revenue) as value sum(website_revenue.revenue) as value
from website_revenue from website_revenue
join website_event any left join (
select *
from website_event
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = 2) website_event
on website_event.website_id = website_revenue.website_id on website_event.website_id = website_revenue.website_id
and website_event.session_id = website_revenue.session_id and website_event.session_id = website_revenue.session_id
and website_event.event_id = website_revenue.event_id and website_event.event_id = website_revenue.event_id
and website_event.website_id = {websiteId:UUID}
and website_event.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${cohortQuery} ${cohortQuery}
where website_revenue.website_id = {websiteId:UUID} where website_revenue.website_id = {websiteId:UUID}
and website_revenue.created_at between {startDate:DateTime64} and {endDate:DateTime64} and website_revenue.created_at between {startDate:DateTime64} and {endDate:DateTime64}