Get startedGet started for free

MAU monitor (II)

Now that you've built the basis for Carol's MAU monitor, write a query that returns a table of months and the deltas of each month's current and previous MAUs.

If the delta is negative, less users were active in the current month than in the previous month, which triggers the monitor to raise a red flag so the Product team can investigate.

This exercise is part of the course

Analyzing Business Data in SQL

View Course

Exercise instructions

  • Fetch the previous month's MAU in the mau_with_lag CTE..
  • Select the month and the delta between its MAU and the previous month's MAU.
  • Order by month in ascending order.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

WITH mau AS (
  SELECT
    DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
    COUNT(DISTINCT user_id) AS mau
  FROM orders
  GROUP BY delivr_month),

  mau_with_lag AS (
  SELECT
    delivr_month,
    mau,
    -- Fetch the previous month's MAU
    COALESCE(
      ___,
    0) AS last_mau
  FROM mau)

SELECT
  -- Calculate each month's delta of MAUs
  ___,
  ___ AS mau_delta
FROM mau_with_lag
-- Order by month in ascending order
ORDER BY ___;
Edit and Run Code