SelectFromData

Interactive · Gamified

Business Cases

Real consulting scenarios. A manager, a stakeholder, a deadline — and after you deliver, they ask for more. Write actual SQL and see how the work happens in practice.

AnalyticsMedior

Meridiaan Bank · Banking & Investments

The Weekly Portfolio Overview

It's Monday morning at Meridiaan Bank. Your manager wants a portfolio overview for the standup — from the investments data mart: a fact_position table joined to dim_customer, dim_instrument and dim_date. It's real-world messy: stale snapshots, closed positions, and three currencies. Join the star, clean it, get the number right.

Star schemaFact & dimensionsData cleaning
30 min 3 rounds
AnalyticsMedior

Atlas Industrial · Manufacturing & Supply Chain

The Annual Sales Review

Q4 planning at Atlas. The sales ledger mixes completed orders with cancelled and returned ones — quote revenue off the raw table and you'll overstate the book by hundreds of thousands.

Data cleaningJOINEXTRACT
30 min 3 rounds
AnalyticsMedior

Atlas Industrial · Manufacturing & Supply Chain

The Carrier Performance Audit

Procurement renews carrier contracts next month. The shipment log is full of in-transit and cancelled rows — some still carrying a stale on-time flag — and a careless on-time rate will hand the wrong carrier a renewal.

Data cleaningRatesEXTRACT
30 min 3 rounds
AnalyticsMedior

Meridiaan Bank · Banking & Investments

The Budget Overrun Investigation

The CFO has a board meeting Thursday and a number that doesn't tie out. The spend mart — a fact_transaction table around dim_cost_center and dim_date, with budgets in fact_budget — is full of pending entries, a reversal, and a prior-year row that leaked in. And one budget was re-baselined mid-year, so 'the budget' isn't a single row. Find the real overruns before he walks in.

Star schemaFact & dimensionsData cleaning
30 min 3 rounds
AnalyticsMedior

Lumen Care · Health & Patient CRM

The Doctor Workload Review

CliniqHub's medical director suspects uneven workload across doctors in the same specialty. The clinical mart is a star: fact_appointment joined to dim_doctor, dim_patient and a conformed dim_date, with a second fact_doctor_capacity sharing the same doctor and date dimensions. The log mixes completed visits with cancellations and no-shows — count the wrong ones and the story falls apart.

Star schemaFact & dimensionsConformed dimensions
40 min 3 rounds
AnalyticsMedior

Helios Energy · Energy & Utilities

The MRR Growth Story

The CFO is pitching investors next week and needs a clean MRR story. The revenue mart is a star: fact_subscription joined to dim_customer, dim_plan and a conformed dim_date, with a second fact_mrr_monthly snapshot sharing the same plan and date dimensions. Stale snapshots and free trials lurk in the data — count the wrong rows and the whole deck is wrong.

Star schemaFact & dimensionsConformed dimensions
35 min 3 rounds
AnalyticsMedior

Helios Energy · Energy & Utilities

The Checkout Funnel Leak

The growth team agrees conversion is down but not where the funnel leaks. The clickstream mart is a star — fact_session and fact_funnel_event around conformed dim_channel, dim_date and a dim_funnel_step lookup — but it's modelled straight from a raw event feed: duplicate fires, a stray non-funnel event, an unattributed session and split orders. A careless query points at the wrong step.

Star schemaConformed dimensionsCOUNT DISTINCT
45 min 4 rounds
AnalyticsSenior

Meridiaan Bank · Banking & Investments

The Attribution Argument

Marketing and the CFO are fighting over who gets credit for €600 of new-account revenue. You'll settle it with last-touch, first-touch and linear attribution — but it's a two-fact marketing mart, the touch feed is dirty, and a careless query crowns the wrong channel.

Star schemaFact & dimensionsWindow Functions
35 min 3 rounds
AnalyticsSenior

Lumen Care · Health & Patient CRM

The Segmentation the Retention Team Needs

Lumen Care is done sending every patient the same recall reminder. They want RFM segments — recency, frequency, monetary — built from the patient-engagement data mart: a fact_encounter event table joined to dim_patient and dim_date, with a monthly fact_rfm_snapshot sharing those same dimensions. But the ledger carries reversed encounters (some dated after the real last visit), and the snapshot history has a stale reload — so a careless model rewards patients for visits that never settled.

Star schemaPeriodic snapshotConformed dimensions
45 min 3 rounds
AnalyticsMedior

Helios Energy · Energy & Utilities

The Attrition Number Doesn't Add Up

The CHRO presents to the board on Thursday and the attrition figure looks wrong against headcount. Rebuild it from the HR data mart — a monthly headcount snapshot and a terminations fact around shared employee, department and date dimensions. It's real-world messy: a stale snapshot, blank-string statuses the export never nulled, and tenure to band.

Star schemaConformed dimensionsSnapshot grain
40 min 3 rounds
AnalyticsMedior

Atlas Industrial · Manufacturing & Supply Chain

The Stockout That Can't Happen Again

Three products ran dry over a holiday weekend last quarter and it cost real money. The warehouse manager wants a daily stockout-risk report — built from the inventory data mart: two fact tables (a daily stock snapshot and the order-line feed) sharing the same product and date dimensions. It's real-world messy: stale snapshots, a late out-of-order correction, and noise in the order feed.

Star schemaPeriodic snapshotConformed dimensions
40 min 3 rounds
EngineeringSenior

Atlas Industrial · Manufacturing & Supply Chain

The Pipeline That Dropped Rows

The nightly load into the warehouse doesn't match the source system, and finance noticed before you did. Reconcile two facts over the same conformed order dimension: find what the load dropped, what it re-loaded — and don't mistake a correctly-cancelled order or a late-arriving one for a bug.

ReconciliationConformed dimensionsTwo-fact star
40 min 3 rounds
ArchitectureSenior

Meridiaan Bank · Banking & Investments

The Dimension That Broke

Reports off the investments mart have started double-counting AUM, and the model is the suspect. The customer dimension at the centre of the star has integrity problems — duplicated surrogate keys, orphan facts, broken history — find them all before the next regulatory run.

Dimensional modelingSurrogate keysSCD Type 2
40 min 3 rounds
EngineeringSenior

Meridiaan Bank · Banking & Investments

The Number That Changed Over the Weekend

Friday at 18:00 the CFO signed the daily payments total for 12 June into the weekly liquidity pack. Monday at 08:30 the same query for the same date returned a different number. The warehouse loads from the mainframe in incremental batches, and a Saturday-night backfill recovered a feed interruption — delivering genuinely late transactions and, it turns out, re-delivering rows that were already loaded. Reconstruct exactly what the CFO saw on Friday, prove row by row what changed and why, and hand him an audit-grade bridge from the signed figure to the corrected one.

Incremental loadsIdempotencyDeduplication
45 min 3 rounds
AnalyticsJunior

Atlas Industrial · Manufacturing & Supply Chain

The First Sales Report

A small coffee roaster wants its first proper sales report — revenue by category and best-selling products. The data is tidy; the only catch is a single cancelled order that shouldn't count as a sale. A gentle first JOIN-and-GROUP-BY.

JOINGROUP BYSUM
20 min 2 rounds
AnalyticsJuniorNew

Atlas Industrial · Manufacturing & Supply Chain

Day One: Read the Order Log

Your very first morning at the coffee roaster. Before anyone asks for a report, learn to read the data: pull up the order log, keep the real sales, list what the shop sells, and find the biggest order. SELECT, WHERE, DISTINCT, and ORDER BY — one at a time, no joins yet.

SELECTWHEREDISTINCT
12 min 4 rounds
AnalyticsMedior

Lumen Care · Health & Patient CRM

The Capacity Cliff

Lumen renegotiated its insurer contracts: each clinic gets a fixed number of funded new-patient intake slots per year. Tess suspects clinics kept accepting registrations long after the slots ran out, because nobody could see the counter ticking. Build the counter: monthly intake per clinic, a running cumulative against the commissioned capacity, and for each clinic the month it fell off the cliff.

Window running totalsLatest per entityStatus filtering
35 min 4 rounds
AnalyticsMedior

Lumen Care · Health & Patient CRM

Two Systems, One Board Report

Lumen's board wants what has never existed: the clinics and the never-integrated ApotheCare pharmacy arm on one monthly page. The pharmacy stores cents, voids and refunds where the clinics store euros and cancellations, and the hand-stitched spreadsheet has produced a different total every quarter — once a hundred-fold one. Align the two ledgers into one shape, prove nothing was lost, and answer the question only a stitched set can: how many patients does the network truly serve?

UNION ALLSchema alignmentConditional aggregation
35 min 4 rounds
AnalyticsPrincipalNew

Aegis Re · Global Reinsurance & Specialty Risk

The Leakage Nobody Booked

Two days before the reserving committee, Isolde's specialty casualty book reads a 94% loss ratio — and her gut says it's worse. The claims hub reports case-incurred (paid + reserve); finance books only what's settled. The two feeds have drifted apart, don't share a clean key, and span three currencies. Rafael blames double-booked reopened claims; Isolde suspects paid losses with no reserve ever raised. Decompose the gap into duplicate-row inflation versus genuine unreserved leakage — in clean USD.

Two-fact reconciliationConformed dimensionsLatest-snapshot dedupe
55 min 4 rounds
AnalyticsPrincipalNew

Aegis Re · Global Reinsurance & Specialty Risk

The Renewal Year That Lied

The property treaty book reads a flat ~96% combined ratio year over year, and the underwriting leads use that to argue every renewal cohort is as good as the last. Rafael doesn't buy it: a few mature legacy cohorts are propping up the average while the 2021–2023 soft-market years quietly deteriorate as their losses develop. Comparing a 2023 cohort at 6 months against a 2018 cohort at 60 months is meaningless. Strip out the maturity illusion — group treaties by the underwriting year they were bound and compare every cohort at the SAME 12-month development age — to prove whether the newer cohorts are genuinely worse. Premium and losses live in two awkward feeds with different grains, duplicated rows, mixed currencies, and two encodings of development age.

Two-fact joinLoss developmentCohort analysis
60 min 4 rounds
AnalyticsPrincipalNew

Aegis Re · Global Reinsurance & Specialty Risk

One Storm, Counted Twice

A category-4 windstorm is tracking toward Northern Europe and the regulator has given Hana 48 hours to certify the group's aggregate exposure to this single event — the maximum the group could pay if the worst-case footprint materialises — net of its own outward retrocession. The cat model's headline is double-counting: the same underlying risk shows up in two overlapping feeds (the per-treaty register and the facultative/account feed), and large accounts that sit inside blanket treaties get summed twice. On top of that the model treats a NULL Aegis share as zero — silently dropping the treaties where Aegis takes the whole line — and the two feeds spell the accumulation-zone codes three different ways so they won't join. Normalise the zones, fix the NULL-share convention, de-duplicate the treaty/account overlap, convert mixed currencies to USD, apply the per-zone retro cap, and hand the regulator a certified net number with the cat model's error fully decomposed.

Two-fact overlapSingle-count reconciliationCode normalisation
60 min 4 rounds
AnalyticsSenior

Helios Energy · Energy & Utilities

The Sessions That Vanished

App release 4.18 shipped a bug in the analytics SDK: for a window in March every event arrived without the collector's session id, and the growth dashboard — which counts sessions straight off those ids — flatlined at zero. The raw events are all there. Rebuild the sessions from the event log under the 30-minute inactivity standard, prove the method against an intact day the collector still has, and hand Rens the numbers the dashboard would have shown. The raw feed is raw: retry duplicates, keep-alive pings, and logged-out devices all change the answer.

SessionizationGaps and islandsWindow LAG
50 min 4 rounds