Capital One is a card issuer and a bank, and its data-analyst screen runs on CodeSignal — a timed mix of dataset questions and written SQL. Practice the SQL that screen is described as testing — joins at the right grain, GROUP BY, CTEs, window functions — on card-transaction data — accounts, merchants, transactions, chargebacks — with an AI tutor when you get stuck.
6 card-data challenges
Free to start
Card ledger
200 accounts · 2,165 transactions
AI tutor
Step-by-step hints
What is sourced: Capital One does not publish its interview format, so every specific about their process on this page is what candidates and prep guides described publicly — each one carries its source and the date it showed. Formats change; treat them as reported, not official. What is ours: the practice questions are SQL Quest challenges, picked because their SQL matches the patterns those sources report. They are not questions Capital One has asked.
As described publicly in September 2026 — candidate reports and dated prep guides, not Capital One itself. Where the reports disagree, this page says so rather than picking a number.
A CodeSignal assessment of about 70 minutes with around 14 to 15 questions. Most are multiple-choice over provided CSV or Excel datasets — you can answer them in Excel, Python, R or SQL — plus one or a few written SQL questions. Candidate reports differ on the exact split, so prepare for more than one.
Joins (INNER and LEFT), GROUP BY aggregation with COUNT, SUM, AVG, MIN and MAX, CTEs and subqueries, window functions — ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, SUM OVER — and date filtering by day, week, month, quarter and rolling window. The written question is described as summarising data, not reciting syntax.
On dataset questions the answer is a number, so a join that duplicates rows or a GROUP BY at the wrong level is simply wrong — there is no partial credit for a query that runs. Drill the grain: one row per what? Then the fan-out: does this join multiply the thing I am summing? The six challenges below are chosen for exactly those two mistakes.
Sources: candidate reports on Blind (December 2021, November 2022, June 2025) and interview-prep guides dated August 2025 to February 2026. Capital One does not publish the screen's format; treat every specific above as candidate-reported, and expect it to change.
Practice the screen under the clock: a 70-minute CodeSignal-style mock in the proportion candidates describe — 12 multiple-choice questions over the card-transaction ledger, then 2 written SQL. Then the harder half: a 60-minute live-round mock of four written questions — a join that fans out, a pivot, an average of an aggregate, the largest row per group. Both Pro.
Start the 70-minute screen mock →Or the 60-minute live SQL round →
Background first? What the CodeSignal data analyst screen actually asks — candidate reports, 2021–2026
The 25 challenges tagged Capital One in the SQL Quest bank, with every raw challenge tag resolved to the 9 canonical skills. Each share is the portion of those 25 challenges that exercise the skill — a challenge exercises several, so the shares do not sum to 100%. This is the composition of the practice set on this page, not a measurement of Capital One’s interview.
From the SQL Quest Banking track · a card-transactions ledger, 200 accounts · Cards marked Free are open to free accounts — your first 10 challenge solves are free — and Pro opens every card
Four tables — accounts, merchants, transactions, chargebacks — joined on account_id, merchant_id and txn_id: the account-and-transaction shape the screen is described as using, on a synthetic card ledger with no real PII. Easy to Hard; each blurb is the bank's own solution shape, and every challenge shows its solution once solved.
One row per what? Say it before you type GROUP BY. The first is the opening question on every card screen — spend per account per month; the second adds the share-of-total the dataset questions keep asking for, where 100 instead of 100.0 rounds every share to zero.
Monthly Spend Per Account
strftime('%Y-%m', txn_at) as the month, SUM(amount) rounded to 2 decimals, GROUP BY account_id and month — one row per account per month, ordered by both.
Transaction Share by Merchant Category
transactions JOIN merchants on merchant_id, COUNT(*) per category, and 100.0 × COUNT(*) over a scalar subquery of the whole table for the share, ordered by count then category.
Three tables, and the last join is optional. A merchant with no disputes must still count its transactions, so chargebacks come in on a LEFT JOIN — and then COUNT(*) counts every transaction as a dispute. This is the dataset question in its purest form: which COUNT, at which grain.
Chain the steps instead of nesting them. "Which accounts did NOT do X" is the anti-join: put the accounts that did X in a CTE, LEFT JOIN to it, keep the rows where the join found nothing. NOT EXISTS is the same question as a subquery.
Top-N per group and the rolling window — the two window shapes every analyst screen keeps. The top-N is Medium; the rolling 30-day frame is Hard and on Pro, and it is the one where ROWS BETWEEN 30 PRECEDING is the classic wrong answer. Month-over-month with LAG (challenge 282) is the same ledger's third window.
Top 3 Merchants Per Category by Spend
GROUP BY merchant inside a CTE, ROW_NUMBER() OVER (PARTITION BY category ORDER BY SUM(amount) DESC, merchant_id), then WHERE rank_in_category <= 3 outside it — a window cannot sit in WHERE.
Peak Rolling 30-Day Spend Per Account
SUM(amount) OVER (PARTITION BY account_id ORDER BY julianday(txn_at) RANGE BETWEEN 30 PRECEDING AND CURRENT ROW) in a CTE — days, not rows — then MAX per account, top 20.
These six are the Capital One cut of the Banking track: 57 challenges in all — 27 on FDIC BankFind data plus 30 on a synthetic card ledger. The other nineteen card-analytics challenges on the same tables (signup-month cohorts, ticket-size mix, month-over-month growth, first-to-second latency, the fan-out two one-to-many joins produce, COUNT(*) versus COUNT(DISTINCT), the NULL that COUNT skips, RANK on ties, percent-of-parent, running totals, a self-join and a decile cut computed from the data) go further into the same shapes; card fraud is Capital One's business, so once those are cold, the ledger's velocity rule and impossible-travel check are the natural next step.
Skillmap
Ten questions, no signup. You get a readiness score weighted to the SQL this page covers, your Skillmap across joins, window functions, aggregation and the rest, and the weakest skill to practise first.
Drill the skills the Capital One set leans on, one at a time: GROUP BY exercises · JOIN practice · CTE practice · Window function practice · Date function practice — or browse every SQL practice question.
Every question in the Capital One set, one page each with the schema and a hint: Monthly Spend Per Account · Transaction Share by Merchant Category · Signup-Month Cohort Spend · Card Spend by Country · Transactions at High-Risk Merchants · Chargeback Reason Codes: Resolved and Still Open · Spend by Day of Week · The Ledger's First Week, Day by Day · Dormant Cards — No Transactions in the Last 14 Days · Top 3 Merchants Per Category by Spend · Chargeback Rate Per Merchant · Ticket-Size Mix by Category · Month-over-Month Spend Growth by Category · Cardholders Who Have Never Disputed a Charge · Spend and Disputes Per Cardholder — Without the Fan-Out · Busiest Merchants, and What a Tie Does to the Rank · Each Merchant's Share of Its Category · Running Total of Daily Card Spend · How Long Has Each Card Been Active? · Peak Rolling 30-Day Spend Per Account · First-to-Second Transaction Latency · Cards That Never Spend at Home · Two Swipes at the Same Merchant Inside a Day · Disputed Spend by Risk Tier and Category · How Concentrated Is the Spend?.
No signup required. No credit card. Open the Banking track and start with the monthly-spend question right now.
Launch SQL Quest — It's Free ⚡Works on Chrome, Firefox, Safari, Edge · No plugins · No downloads
Card fraud is the other half of the job. Read SQL for fraud analytics — velocity checks, rolling windows and self-joins — or go straight to the fraud-analytics challenge set on a transaction ledger.
Interviewing at more than one bank? The same patterns carry: JPMorgan · Morgan Stanley · Wise · Revolut — or the full company-by-company interview guide.