Skip to content

SQL Mini Project (Build a KPI Dashboard Query Set)

Create a mini “query pack” for a dashboard.

Assume tables:

  • users(user_id, created_at, country, plan)
  • orders(order_id, user_id, order_ts, amount)
  • events(user_id, event_ts, event_name)
DAU
SELECT
  DATE(event_ts) AS day,
  COUNT(DISTINCT user_id) AS dau
FROM events
GROUP BY DATE(event_ts)
ORDER BY day;
Daily revenue
SELECT
  DATE(order_ts) AS day,
  SUM(amount) AS revenue
FROM orders
GROUP BY DATE(order_ts)
ORDER BY day;
Top countries
SELECT
  u.country,
  SUM(o.amount) AS revenue
FROM orders o
JOIN users u ON u.user_id = o.user_id
GROUP BY u.country
ORDER BY revenue DESC
LIMIT 10;
ARPU
WITH revenue_by_user AS (
  SELECT user_id, SUM(amount) AS revenue
  FROM orders
  GROUP BY user_id
)
SELECT
  AVG(revenue) AS arpu
FROM revenue_by_user;
  • 5–10 queries you can reuse
  • Notes about assumptions (time zone, filters, returns)

A “KPI dashboard” is really just several independent queries against the same handful of tables, each answering one question. Nothing here is new — you’re combining GROUP BY, joins, DATE(), and CTEs from earlier pages into small, named building blocks.

diagram KPI query pack mermaid
Each dashboard number is its own small query against the same shared tables; a dashboard just runs all of them and displays the results side by side.

This wraps up the SQL for Data Analytics phase. Bring these query patterns with you into the project phases, where you’ll pull data from files instead of a database — the filtering, grouping, and joining logic transfers directly to pandas.

pch.coffeeTagline

pch.coffeeCta

pch.feedbackHeading

pch.feedbackSubheading