Subscription Commerce Analytics Path · Mission 3 of 25Easy

MRR by plan family

First SUM aggregation against monetary data. Practice JOIN to a small dim, GROUP BY a denormalized attribute (plan_family from dim_plans, not stored on the snapshot), and using ROUND(value, 2) to produce CFO-readable totals.

The Brief

Eleanor VossCFOsubscription-ops

Board prep — I need MRR broken down by plan_family for the latest snapshot ('2026-03-31'). Active subs only; paused don't contribute MRR. Two columns: plan_family, mrr_total. Round mrr_total to 2 decimals so it pastes cleanly into the deck. Sort mrr_total descending, plan_family ascending.

You'll practice

SUMGROUP BYLatest snapshot filter

Tables & columns available

fact_subscription_snapshotsfact7 columns
ColumnTypeKey
snapshot_dateTEXTPK
subscription_idINTPKFK → fact_subscriptions
customer_idINTFK → dim_customers
stateTEXT
plan_idINTFK → dim_plans
mrrREAL
paused_untilTEXT
dim_plansdim5 columns
ColumnTypeKey
plan_idINTPK
plan_familyTEXT
cadenceTEXT
monthly_priceREAL
display_nameTEXT

Hints (3)

Each hint you reveal reduces the XP you can earn. Try the query first.

Hint 1

Snapshot filter + state filter — same pattern as before. snapshot_date = '2026-03-31' AND state = 'active'.

Hint 2

plan_family lives on dim_plans, not on the snapshot. Join on plan_id.

Hint 3

SUM(s.mrr) totals the per-subscription MRR across the family. Wrap in ROUND(..., 2) since SUM on REAL can carry floating-point dust.