Analyzing Business Data in SQL
Michel Semaan
Data Scientist
KPIs
Benefits
Registrations KPI: Counts registrations over time, usually per month
For Delivr, a user's registration date is the date of that user's first order
Query
SELECT
user_id,
MIN(order_date) AS reg_date
FROM orders
GROUP BY user_id
ORDER BY user_id
LIMIT 3;
Result
user_id reg_date
------- ----------
0 2018-06-01
1 2018-06-01
2 2018-06-01
WITH reg_dates AS (
SELECT
user_id,
MIN(order_date) AS reg_date
FROM orders
GROUP BY user_id)
SELECT
DATE_TRUNC('month', reg_date) :: DATE AS delivr_month,
COUNT(DISTINCT user_id) AS regs
FROM reg_dates
GROUP BY delivr_month
ORDER BY delivr_month ASC
LIMIT 3;
Result
delivr_month regs
------------ ----
2018-06-01 123
2018-07-01 140
2018-08-01 157
SELECT
DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
COUNT(DISTINCT user_id) AS mau
FROM orders
GROUP BY delivr_month
ORDER BY delivr_month ASC
LIMIT 3;
delivr_month mau
------------ ---
2018-06-01 123
2018-07-01 226
2018-08-01 337
Analyzing Business Data in SQL