Data Analyst interview prep
A spaced-repetition deck of 265+ Data Analyst interview questions — organised by topic and difficulty, and resurfaced right before you'd forget. Preview a few cards below, then choose access to study the whole track on an Anki-style SM-2 schedule.
7 days free on monthly or yearly · every feature included.
What's covered
Every topic in this track, grouped the way you'd study it.
SQL for Analytics
11 cardsStatistics & Probability
11 cardsA/B Testing & Experimentation
9 cardsProduct & Business Metrics
10 cardsData Visualization & Storytelling
8 cardsPython for Analysts (pandas & matplotlib)
10 cardsAnalytical Case Studies
7 cardsPython
122 cardsDatabases
42 cardsBehavioral
35 cardsSample questions
A few cards from the deck — reveal each answer, then choose access to study the full set on a schedule.
What are window functions and how do they differ from GROUP BY?
What are window functions and how do they differ from GROUP BY?
Short answer: A window function computes an aggregate over a "window" of rows but does not collapse them — every source row survives and gets its own value. GROUP BY instead folds each group into a single row.
In depth:
- GROUP BY — N rows in a group → 1 result row. Detail is lost.
- Window function — N rows stay N rows, with an aggregate (sum, rank, average, lag) added alongside.
- Syntax —
func() OVER (PARTITION BY ... ORDER BY ...).PARTITION BYdefines the groups,ORDER BYsets order within the window (needed for running totals and ranks).
-- Running total of sales per user
SELECT
user_id,
order_date,
amount,
SUM(amount) OVER (
PARTITION BY user_id
ORDER BY order_date
) AS running_total
FROM orders;
⚠️ Common mistake: trying to filter on a window function's result in WHERE — windows are evaluated after WHERE/GROUP BY, so wrap the query in a CTE/subquery and filter on the outside.
How do mean, median, and mode differ, and why is the median better for skewed data (income, latency)?
How do mean, median, and mode differ, and why is the median better for skewed data (income, latency)?
Short answer: The mean is the sum divided by the count and is sensitive to outliers. The median is the middle value of the ordered data and is robust to outliers. The mode is the most frequent value. For skewed data the median better reflects the "typical" observation.
In depth:
- Mean — good for symmetric data and downstream math (variance, regression), but a single outlier shifts it.
- Median — the 50th percentile; splits the data in half and barely reacts to extremes.
- Mode — the only one of the three that works for categorical data ("most common plan").
| Metric | When to use | Outlier sensitivity |
|---|---|---|
| Mean | symmetric data, downstream calculations | high |
| Median | skewed data: income, latency, prices | low |
| Mode | categorical data, most frequent value | low |
⚠️ Common mistake: reporting the mean for income or latency. A long right tail drags the mean upward, so it no longer describes the typical user — use the median.
How does an A/B test work end to end? Walk through the key steps.
How does an A/B test work end to end? Walk through the key steps.
Short answer: An A/B test is a randomized experiment: users are split at random into control and treatment, shown different versions, and compared on a single pre-chosen primary metric under a fixed decision rule.
In depth:
- Hypothesis — what you change, which metric it should move, and why.
- Metric and MDE — one primary metric plus a minimum detectable effect (MDE).
- Randomization — a random, stable split into control/treatment.
- Sample size and duration — compute and fix them before launch.
- Run to N — run until the sample is reached, without peeking at interim results.
- Analysis — compare the metric, compute the p-value and the confidence interval of the lift.
- Decision — ship or roll back per the pre-defined rule.
Hypothesis → Randomize → Run to N → Analyze → Decision
│ │
control / treatment ship ✓ / rollback ✗
⚠️ Common mistake: changing the UI mid-test or stopping the moment it first looks 'significant' — both break the conclusions.
What makes a metric good, and how does a metric differ from a KPI?
What makes a metric good, and how does a metric differ from a KPI?
Short answer: A good metric is measurable, comparable, understandable and hard to game, and above all actionable: it can drive a decision. A KPI is the same kind of metric but tied to a goal and a target value for a period; a KPI is a subset of metrics, not a synonym.
In depth:
- Actionable, not vanity — a metric should change someone's decision. If the number goes up but nobody knows what to do, it's a vanity metric.
- Comparability — prefer rates and ratios (conversion, retention %) over raw counts: they compare across periods and segments.
- Hard to game — ask "how could this be inflated without creating value?". "Clicks" are easy to game; "activated users" are harder.
- A precise definition — one numerator, one denominator, a fixed window and filters, or two teams will count it differently.
| Property | Metric | KPI |
|---|---|---|
| What it is | any measurable number | a metric with a goal |
| Tied to a target | not necessarily | always (target) |
| How many | many | a chosen few |
| Example | time on page | activation rate ≥ 40% by Q3 |
⚠️ Common mistake: calling everything a KPI. KPIs are the 3–5 metrics a team is actually judged on; the rest are diagnostic metrics.
How do you pick the right chart type: bar, line, scatter, or pie?
How do you pick the right chart type: bar, line, scatter, or pie?
Short answer: The chart type is dictated not by taste but by the kind of relationship in the data: comparing categories — bars, change over time — a line, correlation between two variables — a scatter plot, share of a few parts in a whole — a pie. When torn between a pie and anything else, almost always pick bars.
In depth:
First state which relationship you are showing, and only then choose the visual:
| Relationship in data | Chart type | Why |
|---|---|---|
| Comparing categories | Bar | the eye compares length precisely; axis must start at 0 |
| Change over time | Line | a line emphasizes trend and continuity |
| Correlation of X and Y | Scatter | reveals the cloud, clusters and outliers |
| Parts of a whole | Pie / stacked | only for 2–4 parts, summing to 100% |
| Distribution | Histogram / boxplot | shows shape, spread, tails |
- Bars — the workhorse for categories; the Y axis starts at zero, otherwise the height difference lies.
- Line — only for an ordered continuous axis (time, days); never connect unrelated categories with a line.
- Scatter — for "are X and Y related"; add a trend line if needed.
⚠️ Common mistake: a pie chart with 8 slices — the shares become indistinguishable; replace it with horizontal bars sorted by value.
How does a Series differ from a DataFrame, and how do you load and quickly inspect data?
How does a Series differ from a DataFrame, and how do you load and quickly inspect data?
Short answer: A Series is a one-dimensional labelled array (a single column); a DataFrame is a two-dimensional table of column-Series sharing a row index. You load data with pd.read_csv() / pd.read_sql() and inspect it with .head(), .info(), .describe(), .dtypes, .shape.
In depth:
- Series vs DataFrame —
df['col']returns aSeries;df[['col']](double brackets) returns a one-columnDataFrame. Both carry an.index. - Loading —
read_csv(file/URL),read_sql(a SQL query plus a connection),read_parquet(fast columnar format). - Inspecting —
.head()/.tail()peek at the edges,.info()shows dtypes and null counts,.describe()gives stats on numeric columns,.dtypeslists types,.shapegives size.
import pandas as pd
df = pd.read_csv("sales.csv", parse_dates=["order_date"])
df.shape # (10000, 8) — rows, columns
df.info() # column dtypes and non-null counts
df.describe() # count/mean/std/min/quartiles/max for numerics
df["revenue"].head() # Series — a single column
⚠️ Common mistake: forgetting parse_dates= on load — the date column stays object (a string), so date arithmetic and resample() won't work.
Ready to make it stick?
Start your first session in under a minute. Your future self, mid-interview, will thank you.
Questions about this track
How should I prepare for a Data Analyst interview?
Study the concepts you'll be asked to explain, not just the ones you can code. RecallDeck's Data Analyst track gives you 265+ curated interview questions and resurfaces each one with an Anki-style SM-2 schedule right before you'd forget it — so the answers are still there under pressure on interview day.
What topics does the Data Analyst track cover?
The Data Analyst track is organised into the core areas Data Analyst interviews actually test, grouped by topic and by difficulty (Concept, Junior, Middle, Senior). You can preview the full outline and sample questions above before signing in.
Is spaced repetition effective for Data Analyst interview prep?
Yes. Actively recalling an answer and grading yourself honestly builds far more durable memory than re-reading notes. RecallDeck schedules each Data Analyst card to reappear at the moment you're about to forget it, so your daily reviews shrink while your recall holds.
Can I try the Data Analyst track before paying?
Yes. Monthly and yearly access include a seven-day trial of the complete Data Analyst track, the full SM-2 scheduler, statistics, flexible pacing, and cram mode. You can cancel online before the first charge.