Advanced SQL: Metric Monitoring, Anomaly Detection, and Data Correctness at Scale Questions

SQL for monitoring a business or operational metric over time and catching when it is wrong or behaving abnormally, as distinct from the mechanics of the SQL constructs used to compute it (window function syntax, frame semantics, CTEs, and subqueries are covered by the companion topic Advanced SQL: Window Functions, CTEs, and Subqueries), from defining and computing cohort retention, funnel conversion, DAU/WAU/MAU, and lifetime value themselves (covered by the companion topics User Retention & Engagement, Conversion Funnel Optimization, and SQL for Data Analysis), and from sessionization via inactivity-gap detection (also covered by the companion window-functions topic). Covers rolling-window anomaly and change-point detection (z-score and threshold-based, including seasonality-aware baselines), testing whether a period-over-period change in a rate metric is statistically significant versus noise, decomposing a metric's change into which segments drove it, average revenue per user (ARPU) at both a simple and a rolling/at-scale altitude, keeping cumulative and rolling metrics correct against missing dates, late-arriving or out-of-order events, and incremental (not full-recompute) materialization at very large scale, approximate-distinct (HyperLogLog) computation, standalone timezone/daylight-saving-aware day bucketing, Kaplan-Meier-style survival curves computed in pure SQL, and multi-state subscription churn and retention (renewals, expansions, downgrades, and pauses at the plan level, not just customer presence/absence).

MediumTechnical
112 practiced

Given a transactions table (transaction_id, user_id, amount, occurred_at), write SQL to flag a transaction as anomalous when its amount exceeds that user's own mean plus 3 standard deviations, computed over the user's trailing 365 days. Decide how you handle users with very few historical transactions, and explain your choice.

HardTechnical
86 practiced

Propose an approach to compute an incremental cumulative metric (for example, running revenue per user) in BigQuery without recomputing the entire history nightly. Describe the table design (partitioning, clustering), the merge/upsert pattern you would use, and how you would handle corrections that land in already-processed historical partitions.

MediumTechnical
63 practiced

Describe how timezone differences and daylight-saving transitions can affect a daily cohort assignment or any window-based aggregate that buckets events by calendar day. Provide SQL that normalizes event timestamps to UTC and then assigns the bucket consistently across regions, and list the pitfalls and testing strategies you would use to catch a timezone-boundary bug before it reaches production.

EasyTechnical
121 practiced

Write an ANSI SQL query to compute monthly ARPU (average revenue per user) for January 2025 by region, using a subscriptions table where a subscriber counts as active in the month if their subscription overlaps it. Explain your assumptions.

HardTechnical
73 practiced

Given orders(order_id, user_id, order_date, amount) and refunds(refund_id, order_id, refund_amount), write efficient SQL to compute net revenue per user and flag users with outlier net revenue using a z-score threshold of 3. Discuss the optimizations you would apply to run this on a dataset of 100M+ rows.

Unlock Full Question Bank

Get access to all 14 Advanced SQL: Metric Monitoring, Anomaly Detection, and Data Correctness at Scale interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.