edgeLakeCodeQuery
Last updated
Was this helpful?
Was this helpful?
const [pageViews, addToCarts, checkouts, purchases] = await Promise.all([
codemode.query(`SELECT COUNT(*) as count FROM lake.events WHERE event_name = 'PageView' AND event_timestamp BETWEEN '2024-01-01T00:00:00Z' AND '2024-01-07T23:59:59Z'`),
codemode.query(`SELECT COUNT(*) as count FROM lake.events WHERE event_name = 'AddToCart' AND event_timestamp BETWEEN '2024-01-01T00:00:00Z' AND '2024-01-07T23:59:59Z'`),
codemode.query(`SELECT COUNT(*) as count FROM lake.events WHERE event_name = 'InitiateCheckout' AND event_timestamp BETWEEN '2024-01-01T00:00:00Z' AND '2024-01-07T23:59:59Z'`),
codemode.query(`SELECT COUNT(*) as count FROM lake.events WHERE event_name = 'Purchase' AND event_timestamp BETWEEN '2024-01-01T00:00:00Z' AND '2024-01-07T23:59:59Z'`)
]);
({
funnel: [
{ step: 'PageView', count: pageViews.rows[0].count },
{ step: 'AddToCart', count: addToCarts.rows[0].count },
{ step: 'InitiateCheckout', count: checkouts.rows[0].count },
{ step: 'Purchase', count: purchases.rows[0].count }
]
})const result = await codemode.query(`
SELECT event_timestamp, payload_value, payload_currency
FROM lake.events
WHERE event_name = 'Purchase'
AND event_timestamp BETWEEN '2024-01-01T00:00:00Z' AND '2024-01-07T23:59:59Z'
ORDER BY event_timestamp
LIMIT 10000
`);
const dailyRevenue = {};
for (const row of result.rows) {
const day = row.event_timestamp.split('T')[0];
if (!dailyRevenue[day]) dailyRevenue[day] = 0;
dailyRevenue[day] += Number(row.payload_value || 0);
}
Object.entries(dailyRevenue).map(([date, revenue]) => ({ date, revenue }));