Skip to content

Data Analytics Interview Questions for Product Companies

40 questions weighted to the interview style of product companies — 2 easy, 24 medium, 14 hard.

How product companies interview for Data Analytics

Product companies run deeper interviews with fewer, harder questions. Expect hands-on problem solving, scenario and design questions, follow-ups that test your depth, and a round on ownership and impact. Your projects should show measurable results.

This set focuses on Power BI (5), SQL (4), Python for Analysis (4), Data Modelling & Warehousing (4).

Hiring manager round Online coding assessment Technical round 1 (DSA) HR round Technical round 1
Solved — product companiesStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
3 questions free Unlock the rest in seconds
01

RANK vs DENSE_RANK vs ROW_NUMBER?

SQLMedium
Save to ▾
Show answer
ROW_NUMBER gives a unique sequence. RANK gives ties the same rank and skips the next (1, 1, 3). DENSE_RANK gives ties the same rank without gaps (1, 1, 2).
02

You share a forecasting workbook and users keep overwriting formulas. How do you protect it?

ExcelMedium
Save to ▾
Show answer
Separate input cells from calculation cells and colour inputs clearly. Unlock only the input cells through Format Cells, Protection, then protect the sheet so formulas cannot be edited, and optionally hide formulas. Add data validation on inputs to block wrong values such as negative quantities. Protect workbook structure so sheets cannot be deleted, keep a version history, and add a short instructions sheet so users know where to type.
03

Your scheduled Python report failed silently and nobody noticed for a week. How do you make it reliable?

Save to ▾
Show answer
Add logging to a file or central log, wrap the main steps in try and except that send an alert by email or chat on failure, and exit with a non-zero code so the scheduler marks the job failed. Add data checks, such as row counts above a minimum and no missing dates, before sending output. Use a proper scheduler or orchestrator with retries, and include the data date in every report.
04

Your event logs store timestamps in UTC, but the business reports daily sales in IST, and late-night orders land on the wrong day. How do you fix it?

Save to ▾
Show answer
Convert timestamps to the business time zone before deriving the date. IST is UTC plus 5 hours 30 minutes, so an order at 20:00 UTC belongs to the next day in IST. In SQL use AT TIME ZONE or CONVERT_TZ, and in pandas use tz_localize('UTC') followed by tz_convert('Asia/Kolkata'). Store raw UTC, add a local date column in the model, and document which one each report uses.
05

Write SQL to find users who logged in on at least 3 consecutive days.

SQLHard
Save to ▾
Show answer
WITH d AS ( SELECT DISTINCT user_id, CAST(login_time AS DATE) AS dt FROM logins ), g AS ( SELECT user_id, dt, dt - CAST(ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY dt) AS INT) AS grp FROM d ) SELECT DISTINCT user_id FROM g GROUP BY user_id, grp HAVING COUNT(*) >= 3; -- gaps and islands: consecutive dates share the same grp value
06

Leadership wants sales by store manager, but managers move between stores every few months. How would you model it?

Save to ▾
Show answer
First agree the business rule: should a sale belong to the manager in charge on the sale date, or to the current manager? For history, track the manager on the store dimension as SCD Type 2, or keep a separate store-manager assignment table with start and end dates and join on the sale date. Add a current-manager attribute too, so both views are possible. Document the rule on the report.
07

Customer names in your file show strange characters like 'é' instead of accented letters. What is wrong and how do you fix it?

Save to ▾
Show answer
This is an encoding mismatch: a UTF-8 file was read as a different encoding such as Latin-1 or Windows-1252. Re-read it with the right encoding, for example pd.read_csv(path, encoding='utf-8') or 'utf-8-sig' for files with a byte order mark, or set the file origin in Excel and Power Query import. Avoid re-saving through tools that change encoding, and agree on UTF-8 for all exchanges, especially for Hindi or other Indian language text.
08

What does the CALCULATE function do?

Power BIMedium
Save to ▾
Show answer
It evaluates an expression after modifying the filter context, for example CALCULATE(SUM(Sales[Amount]), Region[Name] = "North").
09

How do you handle errors like #N/A and #DIV/0!?

ExcelMedium
Save to ▾
Show answer
Fix the root cause when possible, or wrap formulas with IFERROR or IFNA to return a clear fallback value.
10

Write SQL to calculate daily active users and the DAU/MAU stickiness ratio.

Save to ▾
Show answer
WITH dau AS ( SELECT CAST(event_ts AS DATE) AS day, COUNT(DISTINCT user_id) AS dau FROM events GROUP BY CAST(event_ts AS DATE) ) SELECT d.day, d.dau, (SELECT COUNT(DISTINCT e.user_id) FROM events e WHERE CAST(e.event_ts AS DATE) BETWEEN d.day - INTERVAL '29 days' AND d.day) AS mau, ROUND(100.0 * d.dau / (SELECT COUNT(DISTINCT e.user_id) FROM events e WHERE CAST(e.event_ts AS DATE) BETWEEN d.day - INTERVAL '29 days' AND d.day), 1) AS stickiness_pct FROM dau d ORDER BY d.day;
11

How do you implement row-level security in Tableau?

Save to ▾
Show answer
The scalable approach is an entitlement table mapping usernames to allowed values, such as region managers to their regions. Relate or join it to the data, then add a calculated filter like USERNAME() = [Username] and apply it as a data source filter on the published source so it cannot be removed. For small cases, user filters or group-based functions like ISMEMBEROF work. Test by viewing as different users before release.
12

What is the difference between a t-test and a z-test?

Save to ▾
Show answer
Both compare means. A z-test assumes the population standard deviation is known or the sample is large, so the normal distribution applies. A t-test estimates standard deviation from the sample and uses the t-distribution, which has heavier tails for small samples. In practice analysts mostly use t-tests: one-sample, independent two-sample (Welch's version if variances differ) or paired, for before-after measurements on the same users.
13

What is a bridge table and when do you need one?

Save to ▾
Show answer
A bridge table resolves a many-to-many relationship between a fact and a dimension. For example, one bank account can have several holders and one customer can hold several accounts, so a bridge table stores account_key, customer_key and often an allocation weight. Without it, joining facts to customers duplicates amounts. Use weights to split balances, or report clearly that totals across customers will exceed the true total.
14

How do you handle outliers in Pandas?

Save to ▾
Show answer
Detect with IQR or z-score, then cap with clip, remove, transform with log, or keep and flag them depending on whether they are errors or real events.
15

A query on a 2-billion-row fact table in a cloud warehouse scans the whole table even when you filter one week. How do you fix it?

Save to ▾
Show answer
Partition the table by date so the engine can prune partitions outside the filtered week, and cluster or sort by frequently filtered columns such as store or customer. Make sure the filter is on the partition column directly, not wrapped in a function like CAST or DATE_TRUNC that blocks pruning. Select only needed columns, because storage is columnar. For dashboards, also consider a pre-aggregated daily summary table.
16

After a website migration, the share of direct traffic jumped from 15% to 45%. What could cause it?

Save to ▾
Show answer
Direct is the default bucket when the source is unknown, so a jump usually means attribution broke. Common causes are redirects that strip UTM parameters, a new referrer policy hiding the referring site, the analytics tag missing on landing pages so sessions start later on the site, payment or login domains not added to the cross-domain or referral exclusion list, and HTTPS to HTTP transitions. Compare landing pages and campaign traffic before and after.
17

What is a dataflow in Power BI?

Power BIMedium
Save to ▾
Show answer
A dataflow is Power Query running in the Power BI Service. It extracts and cleans data once and stores the result so many datasets can reuse it. For example, a single cleaned Customer table can feed sales, finance and marketing reports, ensuring consistent logic and reducing load on the source. Dataflows suit shared, reusable preparation; logic that only one report needs can stay in that report's Power Query.
18

Your test increased conversion rate by 3% but average order value dropped by 5%. What do you recommend?

Save to ▾
Show answer
Look at the metric that reflects business value, such as revenue or margin per visitor, which combines both effects. Here revenue per visitor is roughly 1.03 times 0.95, about 2% lower, so the change may hurt. Check whether the drop is significant, which segments drive it, and whether new buyers are making smaller first orders that grow later. Without a strong reason, I would not ship it as is.
19

How do you find duplicate rows in a table?

SQLMedium
Save to ▾
Show answer
SELECT col, COUNT(*) FROM t GROUP BY col HAVING COUNT(*) > 1; use ROW_NUMBER() partitioned by the key to delete extras.
20

Tell me about a time you worked with a marketing team to improve a campaign using data.

Save to ▾
Show answer
Situation: a lead generation campaign had a high cost per lead and sales said leads were poor. Task: find what to change. Action: I joined ad data with CRM outcomes and found two audience segments produced most leads but almost no closed deals, while one smaller segment converted well. Result: we moved budget to that segment and changed the form questions; cost per qualified lead fell about 30% in six weeks.
21

Your 50/50 test has 52,400 users in control and 47,600 in treatment. What does this tell you?

Save to ▾
Show answer
This is a sample ratio mismatch. A chi-square test on these counts gives a tiny p-value, so the gap is not chance. Something is filtering users unevenly, such as the treatment page crashing on some devices, a redirect losing tracking, bots in one arm or a bug in assignment. The results cannot be trusted until the cause is found. Check splits by browser, platform and day to locate it.
22

How do you present insights to non-technical stakeholders?

Save to ▾
Show answer
Lead with the answer, use one simple chart per point, translate numbers into business impact (₹, %), avoid jargon and end with a clear recommendation and next step.
23

Sales data from different countries mixes currencies and some weights are in grams while others are in kilograms. How do you handle it?

Save to ▾
Show answer
Never add mixed units. Identify the unit for each row from a currency or unit column, or infer it from the source system. Convert to one standard, for example INR using a dated exchange rate table joined on transaction date, and kilograms using a conversion factor. Keep the original value and unit columns for audit. Document which rates were used, and flag rows where the unit could not be determined.
24

Users say a Power BI report still shows yesterday morning's data, although a refresh is scheduled every few hours. What do you check?

Power BIMedium
Save to ▾
Show answer
Open the semantic model's refresh history in the Service to see whether refreshes failed, for example due to expired credentials, an offline gateway or a timeout. Check whether the report is connected to a different copy of the model, whether the source itself was updated, and whether incremental refresh only covers some partitions. Also confirm the schedule time zone. Finally, add a 'data as of' timestamp on the report.
25

Write pandas code for a pivot table of sales by region and category with sum and count.

Save to ▾
Show answer
import pandas as pd summary = pd.pivot_table( df, index='region', columns='category', values='sales', aggfunc=['sum', 'count'], fill_value=0, margins=True # adds an All row and column ) print(summary)
26

The finance dashboard and the sales dashboard show different revenue for last month. How do you resolve it?

Save to ▾
Show answer
Start by listing both definitions: gross or net of returns and discounts, with or without tax, booking date or invoice date, and which entities are included. Compare at a detailed level for one region to find exactly where the difference arises. Usually both are correct for their purpose. Agree with both owners which is the official revenue KPI, rename the other clearly, such as booked sales, and document it in the metric dictionary.
27

What is Power Query and why is it useful?

Power BIMedium
Save to ▾
Show answer
An ETL tool inside Excel for importing, cleaning and shaping data with recorded steps that refresh automatically when the source changes.
28

How would you design an A/B test for a new checkout button?

Save to ▾
Show answer
Define one primary metric, such as checkout conversion, plus guardrails like refund rate. State the hypothesis and minimum detectable effect, then calculate sample size and duration for chosen power and significance. Randomise users, not sessions, into control and variant, check the split is balanced, and run for full weeks to cover weekday patterns. Do not peek and stop early. Finally analyse with a proportion test and check key segments.
29

Your Tableau numbers change unexpectedly when a filter is applied to a view that uses a FIXED LOD. Why?

Save to ▾
Show answer
Usually it is the order of operations. FIXED LODs are computed before dimension filters, so they ignore a normal region filter, while other measures in the view respect it. That mix makes percentages and totals look inconsistent. Decide what the business wants: if the LOD should respect the filter, add the filter to context; if it should not, keep it and label it clearly, for example share of national sales.
30

What is a story in Tableau?

Save to ▾
Show answer
A story is a sequence of sheets or dashboards, called story points, that walk an audience through an analysis step by step, like slides. Each point can keep its own filters and selections and has a caption explaining the insight. It is useful for presenting findings such as why churn rose, moving from the headline number to segments and recommendations. For everyday monitoring, a regular dashboard is better than a story.
31

How do you change data types and parse dates?

Save to ▾
Show answer
df['date'] = pd.to_datetime(df['date']); df['amount'] = pd.to_numeric(df['amount'], errors='coerce'); astype('category') for repeated strings.
32

You must present to the sales team that they missed their quarterly target by 18%. How do you handle it?

Save to ▾
Show answer
Lead with the fact clearly, then show where the gap came from, such as which regions, products or deal stages, so it becomes actionable rather than a blame session. Separate controllable causes like lower conversion from uncontrollable ones like a delayed product launch. Highlight what did work, and end with two or three specific actions and the metrics to track them. Share the numbers with sales leaders privately first, to avoid surprises.
33

How would you investigate a sudden 20% drop in daily sales?

Save to ▾
Show answer
Check data pipelines first, then segment by channel, region, product and device, compare to the same period last year, and look for launches, outages or campaigns.
34

How do you calculate a running total?

SQLMedium
Save to ▾
Show answer
SUM(amount) OVER (ORDER BY order_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) adds up values cumulatively.
35

Brand keyword ads show a ROAS of 15, and the team wants to double the budget. How do you respond?

Save to ▾
Show answer
Brand search ROAS is usually inflated because people searching the brand name were already looking for you and would often click the free organic result anyway. Before increasing spend, I would propose an incrementality test, such as pausing brand ads in some matched cities or time periods and measuring the drop in total brand-search orders. The incremental ROAS is often far lower, so the extra budget may work better elsewhere.
36

Orders arrive in the warehouse with customer IDs that do not exist yet in the customer dimension. What do you do?

Save to ▾
Show answer
These are late-arriving dimensions. Do not drop the orders, or revenue will be understated. Common practice is to insert a placeholder customer row with the natural key and 'Unknown' attributes, link the order to it, and update that row when full details arrive. Alternatively map to a single Unknown member with key -1. Also monitor how many such rows appear daily, because a spike usually means a broken feed.
37

Write Python code to test whether conversion differs between control and treatment.

Save to ▾
Show answer
from statsmodels.stats.proportion import proportions_ztest, proportion_confint conversions = [1180, 1295] # control, treatment visitors = [30000, 30100] z, p = proportions_ztest(conversions, visitors) print(f'z = {z:.2f}, p = {p:.4f}') for c, n in zip(conversions, visitors): low, high = proportion_confint(c, n, method='wilson') print(f'rate {c/n:.3%} 95% CI {low:.3%} to {high:.3%}')
38

SUMIFS vs COUNTIFS?

ExcelEasy
Save to ▾
Show answer
SUMIFS adds values that meet several conditions; COUNTIFS counts rows that meet several conditions. Example: =SUMIFS(Sales, Region, "North", Month, "Jan")
39

Your manager wants a visual that always shows the top 5 products for whatever region is selected in a slicer. How do you build it?

Save to ▾
Show answer
The simplest way is a visual-level Top N filter on Product, by the Total Sales measure, set to 5; it recalculates for every slicer selection. If the number must be user selectable, create a numeric what-if parameter and a ranking measure using RANKX over ALLSELECTED(Product), then filter the visual where rank is less than or equal to the parameter. I would also add an Others row if the business wants totals to still match.
40

Write SQL to group raw page events into sessions using a 30-minute inactivity rule.

Save to ▾
Show answer
WITH ordered AS ( SELECT user_id, event_ts, LAG(event_ts) OVER (PARTITION BY user_id ORDER BY event_ts) AS prev_ts FROM page_events ), flagged AS ( SELECT *, CASE WHEN prev_ts IS NULL OR event_ts - prev_ts > INTERVAL '30 minutes' THEN 1 ELSE 0 END AS new_session FROM ordered ) SELECT user_id, event_ts, SUM(new_session) OVER (PARTITION BY user_id ORDER BY event_ts) AS session_no FROM flagged;

Product companies (31)

Product

Amazon

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Hyderabad, Chennai +2

View questions
Product

Google

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Hyderabad, Gurugram +2

View questions
Product

Meta

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Gurugram, Bengaluru, Hyderabad +1

View questions
Product

Microsoft

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Hyderabad, Bengaluru, Noida +2

View questions
Product

Adobe

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Noida, Bengaluru, Gurugram

View questions
Product

Oracle

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Hyderabad, Noida +2

View questions
Product

Salesforce

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Hyderabad, Bengaluru, Mumbai +1

View questions
Product

ServiceNow

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Hyderabad, Bengaluru

View questions
Product

Atlassian

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru

View questions
Product

LinkedIn

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Gurugram, Mumbai

View questions
Product

Uber

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Hyderabad, Gurugram

View questions
Product

Ola

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Bengaluru

View questions
Product

Freshworks

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Chennai, Bengaluru, Hyderabad

View questions
Product

Zoho

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Chennai, Tenkasi

View questions
Product

BrowserStack

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Mumbai, Bengaluru

View questions
Product

Dream11

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Mumbai

View questions
Product

SAP

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Gurugram, Pune +1

View questions
Product

Sprinklr

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Gurugram, Bengaluru

View questions
Product

Postman

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Bengaluru

View questions
Product

InMobi

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru

View questions
Product

Chargebee

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Chennai, Bengaluru

View questions
Product

Druva

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Pune

View questions
Product

ThoughtSpot

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Bengaluru

View questions
Product

Expedia Group

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Gurugram, Bengaluru

View questions
Product

Autodesk

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Pune

View questions
Product

Red Hat

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Pune, Bengaluru

View questions
Product

Nutanix

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Bengaluru, Pune

View questions
Product

Workday

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Pune

View questions
Product

NetApp

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Bengaluru

View questions
Product

Urban Company

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Gurugram

View questions
Product

Rapido

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Bengaluru

View questions

Frequently asked questions

How are Data Analytics interviews at product companies different?

Product companies run deeper interviews with fewer, harder questions. Expect hands-on problem solving, scenario and design questions, follow-ups that test your depth, and a round on ownership and impact. Your projects should show measurable results.

Which product companies are covered?

This page links to 31 product companies, including Amazon, Google, Meta, Microsoft, Adobe, Oracle, Salesforce, ServiceNow. Each has its own page with rounds and a separate practice set.

What rounds should I expect?

Common rounds at these companies include: Hiring manager round; Online coding assessment; Technical round 1 (DSA); HR round; Technical round 1. The exact process varies by company and role.