Concepts · 20 ideas · Worked examples · Self-check quiz · Updated 11 Nov 2026

Data analyst interview concepts: the 20 ideas to know before the interview

The short answer

Before a data analyst interview, be able to explain 20 ideas out loud: SQL joins, query order, GROUP BY and HAVING, ranking and LAG/LEAD window functions, NULLs; Excel lookups and pivots; star schemas, DAX measures, Import vs DirectQuery and chart choice in BI; mean vs median, p-values, A/B test design and Simpson’s paradox in statistics; metrics, root-cause analysis and guesstimates; and pandas. Each one below has a one-line definition, a worked example with its real output, the trap interviewers probe, and the reported interview questions that test it.

Concepts on this page
20
5 areas: SQL, Excel and BI, Statistics and experiments, Metrics and business cases, Python
Interview questions they cover
45 of 50
on our Data Analyst page; the other 5 test how you communicate
Of those, reported by candidates
37
Glassdoor, AmbitionBox, LeetCode Discuss, aced.io
Self-check quiz
12 questions
No login. Answers explained.
Question map · 50 questions on our Data Analyst page
Joins show up most: in 7 of the 50 questions

How many questions on our Data Analyst page test each concept. One question can test several concepts. Tap a concept to jump to it.

Source: Our Data Analyst question bank · Counted from the page data, 11 Nov 2026
View as table
ConceptQuestionsReported by candidates
Joins76
GROUP BY and HAVING66
Ranking functions55
Root-cause analysis55
DAX measures41
Metrics and funnels44
NULLs31
A/B test design33
Simpson’s paradox32
Guesstimates33
pandas32
LAG, LEAD, rolling21
Lookups22
Pivot tables22
Star schema22
Import vs DirectQuery22
Chart choice22
p-values and CIs21
Query order11
Mean vs median10
Your progress0 of 20 ticked

Tick a concept when you can explain it without notes. Saved in this browser only.

SQL · 6 concepts

SQL concepts to know

Every loop on our data analyst page has a SQL round. These six ideas cover almost every SQL question reported there.

Concept 01 · asked in 7 questions on our Data Analyst page

Joins: inner vs left, and why row counts change

A join combines rows from two tables on a key; an inner join keeps only rows that match on both sides, and a left join keeps every row of the left table and fills NULLs where the right table has no match.

What the interviewer listens for: That you predict the row count before you run the query: matches that repeat multiply rows, and missing matches either vanish (inner) or show as NULL (left).
Worked example

Four customers and five orders. Asha has two orders; Chitra and Dev have none; order 104 points at a customer who does not exist.

customers
customer_idnamecity
1AshaPune
2BenMumbai
3ChitraPune
4DevDelhi
orders
order_idcustomer_idamount
1011500
1021300
1032700
1049250
105NULL400
sql
SELECT c.name, o.order_id
FROM customers c
LEFT JOIN orders o
  ON o.customer_id
   = c.customer_id;
LEFT JOIN: 5 rows (an INNER JOIN returns only the first 3)
nameorder_id
Asha101
Asha102
Ben103
ChitraNULL
DevNULL

Notice: Four customers became five rows because Asha matched twice. Orders 104 and 105 match no customer, so neither join returns them.

The trap: Filtering the right table in WHERE (WHERE o.amount > 0) after a LEFT JOIN removes the NULL rows and quietly turns it into an inner join: 3 rows, not 5. Put that condition in the ON clause to keep all customers. Asked about UNION too? UNION stacks rows and removes duplicates; UNION ALL keeps them and is faster; both need the same number of columns with compatible types.

“When outputting a left-table row for which there is no right-table match, empty (null) values are substituted for the right-table columns.”

Where it was asked (6 reported, 1 practice)
Concept 02 · asked in 1 question on our Data Analyst page

Query order: how SQL evaluates a query

SQL is written SELECT-first but evaluated FROM-first: the database builds the rows (FROM, JOIN), filters them (WHERE), groups them (GROUP BY), filters the groups (HAVING), and only then computes SELECT and sorts (ORDER BY).

What the interviewer listens for: Whether you can explain why an alias from SELECT cannot be used in WHERE, and why an aggregate belongs in HAVING.
Worked example

This query fails in most databases, and the logical order explains why.

sql
SELECT amount * 0.18 AS gst
FROM orders
WHERE gst > 50;  -- error

-- fix: repeat the expression
SELECT amount * 0.18 AS gst
FROM orders
WHERE amount * 0.18 > 50;

Notice: WHERE runs before SELECT, so the alias gst does not exist yet. ORDER BY runs after SELECT, so ORDER BY gst works. (Some engines, such as SQLite, accept the alias in WHERE anyway; MySQL does not. Do not rely on it.)

Logical order · SQL
SQL evaluates FROM first and SELECT near the end
  1. 1
    FROM / JOIN

    Build the rows

  2. 2
    WHERE

    Filter rows

  3. 3
    GROUP BY

    Make groups

  4. 4
    HAVING

    Filter groups

  5. 5
    SELECT

    Compute columns, aliases

  6. 6
    ORDER BY

    Sort, then LIMIT

Simplified from Microsoft’s list. The engine may execute in another physical order; the logical order decides which names each clause can see.Source: Microsoft Learn, SELECT (Transact-SQL) · opened 11 Nov 2026

The trap: Saying the order is “SELECT, FROM, WHERE”. That is the order you write it, not the order it is evaluated.

“This order determines when the objects defined in one step are made available to the clauses in subsequent steps.”

Where it was asked (1 reported, 0 practice)
Concept 03 · asked in 6 questions on our Data Analyst page

GROUP BY, aggregates, WHERE vs HAVING

GROUP BY turns many rows into one row per group so you can SUM, COUNT or AVG them; WHERE filters rows before grouping and HAVING filters the groups after.

What the interviewer listens for: That every non-aggregated column in SELECT is in GROUP BY, and that you pick WHERE or HAVING on purpose.
Worked example

Same customers and orders as above. Which cities have more than ₹600 in matched orders?

sql
SELECT c.city,
       SUM(o.amount) AS total,
       COUNT(*) AS orders
FROM orders o
JOIN customers c
  ON c.customer_id
   = o.customer_id
GROUP BY c.city
HAVING SUM(o.amount) > 600;
Result
citytotalorders
Mumbai7001
Pune8002

Notice: Pune is two orders from one customer. If the question was “cities with more than one buyer”, you would need COUNT(DISTINCT c.customer_id), which is 1 here. The same pattern finds duplicates (GROUP BY the key, HAVING COUNT(*) > 1), and SUM(CASE WHEN n >= 2 THEN 1 ELSE 0 END) * 1.0 / COUNT(*) turns counts into a rate such as repeat rate.

The trap: Writing WHERE SUM(amount) > 600. Aggregates do not exist yet when WHERE runs, so the database rejects it.

“WHERE selects input rows before groups and aggregates are computed … whereas HAVING selects group rows after groups and aggregates are computed.”

Where it was asked (6 reported, 0 practice)
Concept 04 · asked in 5 questions on our Data Analyst page

Ranking window functions: ROW_NUMBER, RANK, DENSE_RANK

A window function computes a value for each row from a set of related rows without collapsing them; ROW_NUMBER numbers rows 1, 2, 3, RANK gives ties the same number and skips the next, and DENSE_RANK gives ties the same number without skipping.

What the interviewer listens for: That you ask how ties should be treated, and use PARTITION BY for “top N per group”.
Worked example

Five scores with a tie at 85. “Find the second-highest score” depends on the function you pick.

sql
SELECT name, score,
  ROW_NUMBER() OVER w AS rn,
  RANK()       OVER w AS rk,
  DENSE_RANK() OVER w AS drk
FROM scores
WINDOW w AS
  (ORDER BY score DESC);
Result
namescorernrkdrk
Asha90111
Ben85222
Chitra85322
Dev80443
Esha75554

Notice: DENSE_RANK = 2 returns both Ben and Chitra (85). ROW_NUMBER = 2 returns one of them arbitrarily (not guaranteed to be the same next run) unless you add a tie-breaker. RANK = 3 returns nobody.

Scores 90, 85, 85, 80ROW_NUMBERRANKDENSE_RANK
Ties get the same numberNoYesYes
Skips numbers after a tieNoYesNo
Number given to the 80443 (best in this row)
Use it forExactly N rows, dedupeCompetition-style rankNth highest value
Computed in SQLite; definitions from PostgreSQL docs (opened 11 Nov 2026)Swipe →

The trap: Using ROW_NUMBER for “second-highest salary” without saying it drops ties, or filtering the rank in WHERE: window functions run in the SELECT step, so wrap them in a CTE or subquery and filter outside. For “top 3 per city”, forgetting PARTITION BY city ranks the whole table instead.

“Returns the rank of the current row, without gaps; this function effectively counts peer groups.”

Where it was asked (5 reported, 0 practice)
Concept 05 · asked in 2 questions on our Data Analyst page

LAG, LEAD and rolling windows

LAG reads a value from an earlier row and LEAD from a later row in the same window, and a frame such as ROWS BETWEEN 2 PRECEDING AND CURRENT ROW turns AVG into a rolling average.

What the interviewer listens for: Day-over-day change and moving averages written without a self-join, and a clear answer on what the first rows show.
Worked example

Five days of revenue (₹ thousand). Change versus the day before, and a 3-day rolling average.

sql
SELECT d, revenue,
  revenue - LAG(revenue)
    OVER (ORDER BY d) AS change,
  AVG(revenue) OVER (
    ORDER BY d
    ROWS BETWEEN 2 PRECEDING
    AND CURRENT ROW) AS avg_3d
FROM daily;
Result (avg rounded to 1 decimal)
drevenuechangeavg_3d
1 Nov100NULL100.0
2 Nov12020110.0
3 Nov90-30103.3
4 Nov15060120.0
5 Nov140-10126.7

Notice: The first change is NULL because there is no earlier row. The first two averages cover fewer than 3 days; say whether you would show or hide them.

The trap: A rolling 7-day average over ROWS assumes one row per day. If some days have no sales, the window spans more than 7 calendar days; fill missing dates first or use a date range.

“If omitted, offset defaults to 1 and default to NULL.”

Where it was asked (1 reported, 1 practice)
Concept 06 · asked in 3 questions on our Data Analyst page

NULLs: counts, averages and NOT IN

NULL means “unknown”, so comparisons with it are neither true nor false, aggregate functions skip it, and COUNT(*) counts rows while COUNT(column) counts only non-NULL values.

What the interviewer listens for: The edge cases: NULL keys in joins, averages that silently drop rows, and NOT IN returning nothing.
Worked example

The orders table above has one NULL customer_id. Find customers with no orders.

sql
-- returns 0 rows
SELECT name FROM customers
WHERE customer_id NOT IN (
  SELECT customer_id
  FROM orders);

-- returns Chitra, Dev
SELECT name FROM customers c
WHERE NOT EXISTS (
  SELECT 1 FROM orders o
  WHERE o.customer_id
      = c.customer_id);
Aggregates on the same orders table
COUNT(*)COUNT(customer_id)SUM(amount)AVG(amount)
542,150430

Notice: One NULL in the subquery makes NOT IN unknown for every row, so it returns nothing. NOT EXISTS (or a LEFT JOIN … WHERE o.order_id IS NULL) is safe.

The trap: Writing WHERE col = NULL. It never matches; use IS NULL. And AVG(bonus) over a column with NULLs averages only the filled rows, which may not be what the business means.

“Do not write expression = NULL because NULL is not “equal to” NULL.”

Where it was asked (1 reported, 2 practice)
Excel and BI · 6 concepts

Excel and BI concepts to know

Service firms (EY, Deloitte, eClerx) ask Excel and Power BI by name. Know what each feature is for, not just where the button is.

Concept 07 · asked in 2 questions on our Data Analyst page

Lookups: VLOOKUP, INDEX-MATCH, XLOOKUP

A lookup finds a key in one column and returns the value from the same row in another column; VLOOKUP only looks to the right of the key column, INDEX-MATCH and XLOOKUP can look either way.

What the interviewer listens for: That you set exact match on purpose, know why VLOOKUP breaks when a column is inserted, and handle “not found”.
Worked example

Fetch Ben’s marks from a sheet where names are in column A and marks in column C.

excel
=VLOOKUP("Ben", A2:C6, 3, FALSE)
=INDEX(C2:C6,
  MATCH("Ben", A2:A6, 0))
=XLOOKUP("Ben", A2:A6, C2:C6,
         "Not found")

Notice: All three return the same value. Only XLOOKUP needs no column number and no match-type flag, and it can return your own text instead of #N/A.

FeatureVLOOKUPINDEX + MATCHXLOOKUP
Can return a column left of the keyNoYesYes
Match if you leave the flag outApproximateMATCH: approximateExact (best in this row)
Your own “not found” textNoNoYes
Breaks when a column is insertedYes (column number)NoNo
Available inAll versionsAll versionsMicrosoft 365, Excel 2021+
Microsoft Support: VLOOKUP, XLOOKUP (opened 11 Nov 2026)Swipe →

The trap: Leaving out VLOOKUP’s last argument. It defaults to approximate match, which on unsorted data can return a wrong row, with no error.

“VLOOKUP can only look from left-to-right.”

Where it was asked (2 reported, 0 practice)
Concept 08 · asked in 2 questions on our Data Analyst page

Pivot tables

A pivot table summarises a flat table by putting one field in rows, another in columns and an aggregate (sum, count, average) in the cells, so you can compare groups without writing formulas.

What the interviewer listens for: That you clean the source first (one header row, no blanks, no merged cells), pick the right aggregate, and refresh after the data changes.
Worked example

Five sales rows: region, product, sales (₹).

sales
regionproductsales
NorthPens120
NorthBooks300
SouthPens80
SouthPens100
SouthBooks200
Pivot: Region in rows, Product in columns, Sum of sales
regionBooksPensTotal
North300120420
South200180380
Total500300800

Notice: South has two Pens rows; the pivot adds them (80 + 100 = 180). Switch the value to Count and the same cell shows 2.

The trap: Adding rows below the source range: the pivot does not see them. Format the source as a Table (Ctrl+T) so the range grows, then Refresh.

Where it was asked (2 reported, 0 practice)
Concept 09 · asked in 2 questions on our Data Analyst page

Data modelling: star schema, facts and dimensions

A star schema puts events (sales, clicks) in one fact table of keys and numbers, and the things you slice by (date, product, store) in dimension tables joined to it one-to-many.

What the interviewer listens for: That you can say which table is the fact, why one flat table or many-to-many links slow reports and give wrong totals, and that filters flow from dimension to fact.
Worked example

A small retail model.

fact_sales (one row per sale line)
date_keyproduct_keystore_keyqtyamount
2026110117323,000
dim_product (one row per product)
product_keynamecategory
17Shoe AShoes

Notice: Pick Category from dim_product and Sum of amount from fact_sales: Power BI follows the one-to-many relationship from product_key to filter the fact rows.

The trap: Saying “I join everything into one big table”. It works for small files but repeats text in every row and makes measures harder; say when you would use a star instead.

“A fact table contains dimension key columns that relate to dimension tables, and numeric measure columns.”

Where it was asked (2 reported, 0 practice)
Concept 10 · asked in 4 questions on our Data Analyst page

DAX: measures vs calculated columns, CALCULATE and filter context

A calculated column is computed once per row and stored; a measure is computed at query time for whatever the visual is filtered to, and CALCULATE evaluates a measure under a changed set of filters.

What the interviewer listens for: That you choose a measure for anything that is summed or ratioed, explain filter context in one sentence, and know SUM vs SUMX.
Worked example

Four sale lines: Shoe A (2 × ₹1,500), Shoe B (1 × ₹2,000), Shirt (3 × ₹800), Cap (4 × ₹300).

dax
Total Sales = SUMX(Sales,
  Sales[Qty] * Sales[Price])

Shoe Sales = CALCULATE(
  [Total Sales],
  Product[Category] = "Shoes")

Shoe Share = DIVIDE(
  [Shoe Sales], [Total Sales])
Measures in a card visual with no filters
Total SalesShoe SalesShoe Share
₹8,600₹5,00058.1%

Notice: SUMX multiplies row by row, then adds: ₹8,600. SUM(Qty) × SUM(Price) would give 10 × ₹4,600 = ₹46,000, which is meaningless.

The trap: Building Shoe Share as a calculated column. It is computed per row when data loads, so it cannot respond to the slicers on the page. In Tableau, the closest idea is a level of detail expression: FIXED computes at a grain you name and ignores ordinary dimension filters (context filters still apply).

“Evaluates an expression in a modified filter context.”

Where it was asked (1 reported, 3 practice)
Concept 11 · asked in 2 questions on our Data Analyst page

Power BI Import vs DirectQuery

Import copies the data into Power BI’s in-memory model, which is fast but only as fresh as the last refresh; DirectQuery leaves the data in the source and queries it each time a visual loads.

What the interviewer listens for: A choice tied to the business need (freshness vs speed vs data size) and the limits that come with DirectQuery.
Worked example

A sales dashboard that leaders open every morning, built on 2 years of orders.

Notice: Import, refreshed overnight, is the usual answer: yesterday’s data is fresh enough and visuals stay fast. Choose DirectQuery when the data must be current to the minute or is too large or too restricted to copy.

What changesImportDirectQuery
Where the data sitsCopied into the model’s memoryStays in the source
How fresh visuals areAs of the last refreshQueried when the visual loads
Visual speedFast, fully interactive (best in this row)Depends on the source and network
Scheduled refreshesUp to 8 a day on Pro, 48 on Premium/PPUNot needed
Row limit to knowModel size1,000,000-row intermediate results
Microsoft Learn, DirectQuery in Power BI (opened 11 Nov 2026)Swipe →

The trap: Saying DirectQuery is “always live so always better”. Every click becomes a query on the source, and Microsoft documents a one-million-row limit on intermediate results.

“DirectQuery in Power BI lets you keep data in the source and query it at report time instead of importing it.”

Where it was asked (2 reported, 0 practice)
Concept 12 · asked in 2 questions on our Data Analyst page

Choosing the right chart

Pick the chart from the question: a line for change over time, bars for comparing categories, a scatter for a relationship between two numbers, a table when people need exact values.

What the interviewer listens for: That you start from the question and the audience, not the chart gallery, and that you can say what a stakeholder should see first.
Worked example

Three questions a manager might ask about the same sales data.

Notice: “How did sales move this year?” → line. “Which region sold most?” → bars sorted largest first. “Do bigger discounts bring bigger orders?” → scatter. Say the takeaway in the chart title.

The questionChartWhy
How did it change over time?LineShows the shape of a trend
Which category is biggest?Bar, sortedLengths are easy to compare
Do two numbers move together?ScatterShows correlation and clusters
What is the exact value?TablePeople read numbers, not shapes
Based on Microsoft Learn, Overview of visualizations in Power BI (opened 11 Nov 2026)Swipe →

The trap: Pies with many slices, 3D effects, or a chart whose title says “Sales by region” instead of what the reader should notice.

“Line charts emphasize the overall shape of values over time, making them ideal for showing trends and patterns.”

Where it was asked (2 reported, 0 practice)
Statistics and experiments · 4 concepts

Statistics and experiments concepts to know

Product companies (Uber, Meta, Swiggy) test whether you can tell a real effect from noise, and say so in plain words.

Concept 13 · asked in 1 question on our Data Analyst page

Mean vs median, skew and outliers

The mean is the sum divided by the count; the median is the middle value once sorted, so one extreme value moves the mean a lot and the median hardly at all.

What the interviewer listens for: That you check the distribution before quoting an average, and say what you would do with an outlier (investigate first, then cap, exclude or report separately).
Worked example

Nine fictional salaries in ₹ LPA: 4, 5, 5, 6, 6, 7, 7, 8 and one founder-level 60.

Computed
All 9Without the 60
Mean126
Median66

Notice: One value doubled the mean; the median did not move. That is why salary and order-value reports usually lead with the median.

Worked example · 9 fictional salaries
One ₹60 LPA salary pulls the mean to ₹12 LPA; the median stays at ₹6 LPA
  • Person 1₹4 LPA
  • Person 2₹5 LPA
  • Person 3₹5 LPA
  • Person 4₹6 LPA
  • Person 5₹6 LPA
  • Person 6₹7 LPA
  • Person 7₹7 LPA
  • Person 8₹8 LPA
  • Person 9₹60 LPA
Mean = 108 ÷ 9 = 12. Median = the 5th of 9 sorted values = 6.
View as table
PersonSalary (₹ LPA)
Person 14
Person 25
Person 35
Person 46
Person 56
Person 67
Person 77
Person 88
Person 960

The trap: Deleting outliers by reflex. An “outlier” order may be a bulk buyer worth a separate segment, or a data-entry error worth fixing at the source.

“In general, for data with extreme values in the tails, the median provides a better estimate of location than does the mean.”

Where it was asked (0 reported, 1 practice)
Concept 14 · asked in 2 questions on our Data Analyst page

Hypothesis tests: p-value, confidence interval, Type I and II errors

A p-value is the probability of seeing a result at least as extreme as yours if there were truly no effect; a confidence interval is the range of effect sizes consistent with the data; a Type I error is calling an effect real when it is not, and a Type II error is missing a real one.

What the interviewer listens for: Plain-English interpretation, the difference between “significant” and “large”, and naming the null hypothesis before any test.
Worked example

A test of a new checkout shows p = 0.03 and a 95% confidence interval of +0.4 to +3.2 percentage points in conversion.

Notice: p < 0.05 and the interval excludes 0, so at the usual 5% level you reject “no effect”. The true lift is plausibly anywhere from +0.4 to +3.2 points; whether +0.4 is worth shipping is a business call.

The trap: Saying “p = 0.03 means a 97% chance the new checkout is better.” That is not what a p-value measures.

“P-values do not measure the probability that the studied hypothesis is true, or the probability that the data were produced by random chance alone.”

Where it was asked (1 reported, 1 practice)
  • State the null and alternative hypotheses if Flipkart moves customers from credit cards to UPI, and the metrics you would check. (Asked at Swiggy in a Business Analyst loop, per AmbitionBox)Reported on AmbitionBox · Feb 2024 · Model answer and what they listen for
  • A test shows a p-value of 0.03 and a 95% confidence interval of +0.4 to +3.2 points. What does that mean? What are Type I and Type II errors?Practice question we wrote · Model answer and what they listen for
Concept 15 · asked in 3 questions on our Data Analyst page

A/B test design: metric, sample size, no peeking, guardrails

An A/B test randomly splits users between the current and new version, fixes one success metric and a sample size before starting, and also watches guardrail metrics that must not get worse.

What the interviewer listens for: The order: goal → primary metric → guardrails → sample size → run to the end → read the result → decide. And that you mention novelty effects and segments.
Worked example

Baseline conversion is 10% and you want to detect a 1-point absolute lift (10% → 11%) at 5% significance (two-sided) and 80% power, the settings behind the 16 in Evan Miller’s rule.

text
n per group ≈ 16 × σ² / δ²
σ² = p(1 − p) = 0.10 × 0.90
   = 0.09
δ  = 0.01
n  ≈ 16 × 0.09 / 0.0001
   = 14,400 users per group

Notice: About 28,800 users in total before you look at the answer. Halve the effect you want to detect and the sample needed goes up four times.

The trap: Checking the dashboard every day and stopping the first time it looks significant. Each peek is another chance of a false win.

“The more you peek, the more your significance levels will be off.”

Where it was asked (3 reported, 0 practice)
Concept 16 · asked in 3 questions on our Data Analyst page

Correlation vs causation, and Simpson’s paradox

Two numbers moving together does not show that one causes the other; a third factor (a confounder) can drive both, and an overall trend can even reverse inside every segment once you split the data.

What the interviewer listens for: That you segment before concluding, name a likely confounder, and propose a test or natural experiment to check causation.
Worked example

Two app versions, 1,000 users each (fictional). B converts better on mobile and on desktop, yet worse overall.

Conversions / users
SegmentVersion AVersion B
Mobile5.0% (20/400)5.6% (45/800)
Desktop15.0% (90/600)17.5% (35/200)
Overall11.0% (110/1,000)8.0% (80/1,000)

Notice: B got mostly mobile users, who convert less everywhere. The device mix, not the version, drives the overall gap. In a properly randomised test the mix should be near-identical, so a 40% vs 80% mobile split is itself a red flag: check assignment before reading results.

Worked example · 2,000 fictional users
Version B converts better on mobile and on desktop, but worse overall
  • Version A
  • Version B
5.0
5.6
15.0
17.5
11.0
8.0
MobileDesktopOverall
B’s users were 80% mobile; A’s were 40% mobile. Mobile converts less for both versions, so the mix decides the overall number.
View as table
SegmentA conversion %B conversion %
Mobile55.6
Desktop1517.5
Overall118

The trap: Reporting only the overall number when the groups differ in mix. Always ask “is the mix the same in both groups?”

“Simpson’s Paradox is a statistical phenomenon where an association between two variables in a population emerges, disappears or reverses when the population is divided …”

Where it was asked (2 reported, 1 practice)
Metrics and business cases · 3 concepts

Metrics and business cases concepts to know

Case rounds test structure: define the metric, break it into parts, find which part moved.

Concept 17 · asked in 4 questions on our Data Analyst page

Metrics: north star, funnel, guardrails

A north star metric is the one number that best shows customers getting value; input metrics (often funnel steps) explain what moves it, and guardrail metrics catch damage elsewhere.

What the interviewer listens for: A metric with a clear definition (who, what, time window), the funnel that drives it, and one guardrail.
Worked example

A fictional subscription app’s funnel last month.

Step-to-step conversion
StepUsersFrom previous
Visited10,000—
Signed up1,20012%
Activated60050%
Paid15025%

Notice: End to end, 1.5% of visitors pay. Every funnel loses the most people at the top, so compare each step with a benchmark or last month before picking where to dig: the 25% activated-to-paid step may be the real problem.

Worked example · fictional funnel
1.5% of visitors pay; compare each step with a benchmark before choosing where to dig
  • Visited10,000
  • Signed up1,200 (12%)
  • Activated600 (50%)
  • Paid150 (25%)
View as table
StepUsers% of previous
Visited10000—
Signed up120012%
Activated60050%
Paid15025%

The trap: Picking a vanity metric (page views, downloads) as the north star, or a metric with no time window (“active users” without saying daily, weekly or monthly).

“Your North Star Metric should be the key measure of success for your company’s product team.”

Where it was asked (4 reported, 0 practice)
  • How do you define and track a north-star metric? What would you track for a delivery or logistics system? (Asked at Uber, per Glassdoor)Reported on Glassdoor · Apr 2026 · Model answer and what they listen for
  • A product is not getting the downloads it was expected to. What would you look at, and what would you suggest? (Asked at Amazon in a Data Analyst intern loop, per Glassdoor)Reported on Glassdoor · Model answer and what they listen for
  • If we send emails to customers, how would you think about engagement? Which metrics matter, how would they show up in the data, and how would you code them? (Asked at Meta in a Staff Data Analyst loop, per Exponent on aced.io)Reported on Exponent (aced.io) · Model answer and what they listen for
  • For a product like Instagram, what are we analysing, which metrics matter, how would you set a target, and what guardrails would you watch? (Asked at Meta in a Staff Data Analyst loop, per Exponent on aced.io)Reported on Exponent (aced.io) · Model answer and what they listen for
Concept 18 · asked in 5 questions on our Data Analyst page

Root-cause analysis of a metric drop

Root-cause analysis checks that the drop is real, then breaks the metric into its parts (users × frequency × value), finds which part moved, and segments that part until one explanation fits the data.

What the interviewer listens for: Clarifying questions first, a decomposition you can say out loud, internal vs external causes, and one check that would prove you wrong.
Worked example

Fictional: “Revenue fell 20% in December vs November.” Revenue = buyers × orders per buyer × average order value.

Decompose before you guess
PartNovemberDecemberChange
Buyers50,00050,0000%
Orders per buyer2.02.00%
Avg order value₹500₹400−20%
Revenue₹5.0 Cr₹4.0 Cr−20%

Notice: People bought as often, but spent less per order. Next, split order value by category: a November festive sale on high-price items ending would explain it.

The trap: Listing ten possible causes without a structure, or skipping the first check: did tracking, the definition or a data pipeline change?

Where it was asked (5 reported, 0 practice)
Concept 19 · asked in 3 questions on our Data Analyst page

Guesstimates: structure over the exact number

A guesstimate is an estimate built from a formula of stated assumptions, so the interviewer can follow and challenge each step rather than judge the final number.

What the interviewer listens for: A formula stated up front, round numbers, assumptions said out loud, units kept straight, and a sanity check at the end.
Worked example

How much paint for a 10 × 10 × 10 m room? (The assumptions are labelled; change any of them.)

text
4 walls: 4 × 10 × 10 = 400 m²
Ceiling: 10 × 10      = 100 m²
Assume door + windows = −10 m²
Area to paint         = 490 m²
Two coats             = 980 m²
Assume 10 m² per litre
(read the tin)
Paint ≈ 98 litres ≈ 100 L

Notice: The interviewer cares that you asked “floor too?” and “how many coats?”, not whether 98 is right.

The trap: Saying a number with no formula, or using false precision (98.3 litres) from assumptions that are rounded.

Where it was asked (3 reported, 0 practice)
Python · 1 concept

Python concepts to know

When Python comes up for analyst roles, it is pandas: load, join, clean.

Concept 20 · asked in 3 questions on our Data Analyst page

pandas: DataFrames, merge and missing values

A pandas DataFrame is a table in Python with named columns; merge joins two DataFrames like SQL, and dropna or fillna deal with missing values.

What the interviewer listens for: That you check row counts after a merge, choose drop vs fill for a reason, and can write the code without looking it up.
Worked example

Three customers; four orders (one with no amount, one for an unknown customer 4).

python
m = customers.merge(
    orders, on="customer_id",
    how="left")
len(m)           # 4
len(m.dropna())  # 2
m (left merge)
customer_idnameamount
1Asha500
1Asha300
2BenNaN
3ChitraNaN

Notice: dropna removed Ben (an order with no amount) and Chitra (no order at all). Those are different problems; dropping both hides that Chitra never bought.

The trap: Calling dropna on the whole table by default. Decide per column: fill a missing amount with 0 only if it truly means zero.

“Merge DataFrame or named Series objects with a database-style join.”

Where it was asked (2 reported, 1 practice)
Self-check · 12 questions · no login

Check yourself before the interview

Pick an answer to see why it is right or wrong. Your score stays on this page; nothing is sent anywhere.

Score: 0 of 0 answered · 12 questions
  1. 01

    customers has 4 rows. One customer has 2 orders, one has 1, two have none. How many rows does customers LEFT JOIN orders return?

  2. 02

    Which clause can filter on SUM(amount)?

  3. 03

    Scores are 90, 85, 85, 80. What does DENSE_RANK give the 80?

  4. 04

    The subquery in WHERE id NOT IN (SELECT customer_id FROM orders) includes one NULL among the IDs. What happens?

  5. 05

    Which runs first in SQL’s logical order?

  6. 06

    You leave out VLOOKUP’s last argument. What match does it use?

  7. 07

    You need a “% of total” that changes with the slicers on a Power BI page. What do you build?

  8. 08

    Nine salaries: eight between ₹4 and ₹8 LPA and one at ₹60 LPA. Which figure best describes a typical person?

  9. 09

    A test gives p = 0.03. Which statement is correct?

  10. 10

    Baseline conversion 10%. You want to detect +1 point. Roughly how many users per group (16 × p(1−p) / δ²)?

  11. 11

    Version B wins on mobile and on desktop but loses overall. The most likely reason?

  12. 12

    Revenue fell 20%. What is the first thing to check?

Next step

Now say it out loud

Frequently asked questions

What concepts should I learn before a data analyst interview?

SQL first (joins, GROUP BY and HAVING, window functions, NULL handling, query order), then Excel and BI (lookups, pivots, star schema, DAX measures), basic statistics (mean vs median, p-values, A/B tests, correlation vs causation) and how to break down a metric. Every loop on our data analyst page includes a SQL round.

Which SQL concepts are asked most in data analyst interviews?

Of the 50 questions on our data analyst page, joins come up most (7 questions), then GROUP BY with HAVING (6) and ranking window functions such as ROW_NUMBER, RANK and DENSE_RANK (5). Expect edge cases: ties, NULLs and duplicate rows created by joins.

How much statistics does a data analyst need for interviews?

Enough to explain a p-value and a confidence interval in plain words, design a simple A/B test (metric, sample size, run to the end), prefer the median for skewed data, and spot confounding. Product companies probe this more than service firms.

Is Power BI or Tableau asked in data analyst interviews?

Often, when the job post names it. EY and Deloitte candidates reported Power BI questions on Import vs DirectQuery, SUM vs SUMX, measures vs calculated columns and data modelling. Learn one tool well and the concepts carry over.

How do I practise these concepts?

Take the 12-question quiz on this page, then answer the linked interview questions out loud before reading the model answers on our data analyst page, and do a free AI mock interview to practise explaining them.