Skip to content

Zomato Online Assessment

Overview

Zomato online assessment (OA) is the first round of Zomato’s placement process. This guide covers the Zomato online assessment format for both SDE and Product Analyst roles, question types, preparation strategy, and tips to clear the OA.

Zomato Online Assessment format

SDE role OA structure

Component Details Time Allocation
Platform HackerRank or similar -
Duration 90-120 minutes Total time
DSA Problems 2-3 coding problems 60-80 minutes
Debugging 1-2 debugging questions 20-30 minutes
Languages Java, C++, Python, Go -
Evaluation All test cases must pass -

Product analyst role OA structure

Component Details Time Allocation
Platform HackerRank or similar -
Duration 90-120 minutes Total time
SQL Queries 2-3 SQL problems 30-40 minutes
Data Analysis Case study questions 30-40 minutes
Coding Basic Python/SQL 20-30 minutes
Evaluation Correctness and logic -

What 2026 candidates are reporting

This section draws on candidate discussions in r/PlacementsPrep, r/NSUT_Delhi, r/TechInterviewsIndia, r/leetcode and r/developersIndia from August to October 2026. We summarise patterns and do not copy anyone’s post. The reports are few, so treat them as signals rather than a confirmed pattern.

Zomato or Eternal? Zomato’s parent company is now called Eternal, and it also runs Blinkit and Hyperpure. Candidates use both names for the same hiring process, so an “Eternal Product Analyst OA” and a “Zomato Product Analyst OA” are the same thing in most threads.

Product Analyst OA

  • Demand: the most common question from the 2027 batch in August and September 2026 was what the Product Analyst OA contains. Several students also said they could not tell how candidates were shortlisted for it, so don’t read too much into a rejection at the resume stage.
  • Content: an October 2026 reply says you write real SQL from scratch rather than pick options. The focus is on window functions, aggregations and joins.
  • Related role: a Hyperpure Business Analyst interview (also under Eternal) was described as medium SQL questions, one guesstimate, and questions asking you to predict what a JOIN returns. Expect similar ground in Product Analyst rounds.

The practical takeaway is to practise writing full queries without autocomplete, and to know exactly how many rows a LEFT JOIN produces.

SDE signals

  • Reports for SDE-1 at Eternal (Blinkit or Zomato, for 6 months to 2 years of experience) describe a short phone screen of about 20 minutes, followed by a DSA round.
  • In that round, a grid problem like number of islands was first discussed out loud and then coded. Practise explaining your approach before you type.
  • These reports are for experienced hires. Campus SDE OAs may differ, so use the format table above as the baseline.

Practice set modelled on reported topics

These are original questions written to match the topics candidates reported. They are not leaked OA questions.

All SQL questions use this sample data:

restaurants

restaurant_id name city
1 Biryani House Delhi
2 Dosa Corner Bengaluru
3 Momo Point Delhi
4 Pizza Stop Mumbai

orders (user_id links to a users table that the questions do not need)

order_id user_id restaurant_id order_date amount status
101 11 1 2026-09-01 450 delivered
102 12 1 2026-09-01 620 delivered
103 11 2 2026-09-02 300 cancelled
104 13 2 2026-09-03 350 delivered
105 12 2 2026-09-03 300 delivered
106 13 3 2026-09-04 180 cancelled
107 11 1 2026-09-05 620 delivered

1. SQL (window function): highest-value delivered order per restaurant

Return each restaurant’s highest-value delivered order. If two orders tie, return both.

Answer

Use RANK() so ties share rank 1. ROW_NUMBER() would keep only one of the tied orders, and which one it keeps is not guaranteed.

SELECT restaurant_id, order_id, amount
FROM (
SELECT restaurant_id, order_id, amount,
RANK() OVER (PARTITION BY restaurant_id ORDER BY amount DESC) AS rnk
FROM orders
WHERE status = 'delivered'
) t
WHERE rnk = 1
ORDER BY restaurant_id, order_id;
restaurant_id order_id amount
1 102 620
1 107 620
2 104 350

Restaurants 3 and 4 have no delivered orders, so they do not appear.

2. SQL (joins and aggregation): delivered orders per restaurant, including zeros

(a) How many rows does restaurants r LEFT JOIN orders o ON r.restaurant_id = o.restaurant_id return?

(b) This query is meant to list every restaurant with its delivered-order count. What does it actually return, and how do you fix it?

SELECT r.name, COUNT(*) AS delivered_orders
FROM restaurants r
LEFT JOIN orders o ON r.restaurant_id = o.restaurant_id
WHERE o.status = 'delivered'
GROUP BY r.restaurant_id, r.name;
Answer

(a) 8 rows. Biryani House matches 3 orders, Dosa Corner 3, Momo Point 1, and Pizza Stop has no orders, so it appears once with NULLs.

(b) It returns only 2 rows: Biryani House 3 and Dosa Corner 2. The WHERE filter removes rows where o.status is NULL, which turns the LEFT JOIN into an inner join. Moving the filter into ON keeps all restaurants. You also need COUNT(o.order_id) instead of COUNT(*), because COUNT(*) counts the NULL row and would give 1 for restaurants with no delivered orders.

SELECT r.name,
COUNT(o.order_id) AS delivered_orders,
COALESCE(SUM(o.amount), 0) AS delivered_value
FROM restaurants r
LEFT JOIN orders o
ON r.restaurant_id = o.restaurant_id
AND o.status = 'delivered'
GROUP BY r.restaurant_id, r.name
ORDER BY r.restaurant_id;
name delivered_orders delivered_value
Biryani House 3 1690
Dosa Corner 2 650
Momo Point 0 0
Pizza Stop 0 0

3. Guesstimate: food delivery orders per day in Bengaluru

Estimate how many food delivery orders are placed in Bengaluru on a typical day, across all apps.

One structured approach

Every number below is an assumption chosen to be easy to defend. Interviewers grade the structure and the sanity check, not the final figure.

  1. Population: about 1.3 crore people.
  2. People who order online at least once a month: assume 25%, so about 32.5 lakh people.
  3. Frequency: assume these users order 6 times a month on average, which gives about 1.95 crore orders a month.
  4. Per day: 1.95 crore ÷ 30 ≈ 6.5 lakh orders a day across all apps.
  5. Sanity check from the supply side: assume 40,000 restaurants are active on delivery apps and each gets about 15 orders a day. That gives 6 lakh, close to the demand-side figure.

If asked for one app, apply a market-share assumption and say so. Also mention what would change the number, such as weekends, rain and festival days.

4. DSA (SDE): number of islands

Given a grid of 1s (land) and 0s (water), count the islands. Cells connect up, down, left and right, not diagonally. Example: [[1,1,0,0,0],[1,1,0,0,1],[0,0,1,0,1],[0,0,0,1,1]] → 3.

Approach and solution

Scan every cell. When you find unvisited land, count a new island and flood-fill all land connected to it so it isn’t counted again. Each cell is visited once, so it is O(rows × cols) time and space. BFS with a queue avoids recursion-depth errors on large grids, which is a good point to raise when you explain it out loud.

from collections import deque
def num_islands(grid):
if not grid:
return 0
rows, cols = len(grid), len(grid[0])
seen = [[False] * cols for _ in range(rows)]
count = 0
for r in range(rows):
for c in range(cols):
if grid[r][c] == 1 and not seen[r][c]:
count += 1
seen[r][c] = True
queue = deque([(r, c)])
while queue:
x, y = queue.popleft()
for dx, dy in ((1, 0), (-1, 0), (0, 1), (0, -1)):
nx, ny = x + dx, y + dy
if 0 <= nx < rows and 0 <= ny < cols and grid[nx][ny] == 1 and not seen[nx][ny]:
seen[nx][ny] = True
queue.append((nx, ny))
return count

Edge cases to mention: an empty grid returns 0, and a checkerboard such as [[1,0,1],[0,1,0],[1,0,1]] returns 5 because diagonal cells are not connected.

Zomato Online Assessment question types

For SDE roles

1. DSA problems

Zomato online assessment questions for SDE focus on:

  • Arrays & Strings: Manipulation, searching, pattern matching
  • Trees & Graphs: Traversals, algorithms, shortest paths
  • Dynamic Programming: Optimization problems
  • System Design Concepts: Order matching, delivery optimization

2. Debugging questions

  • Identify and fix bugs in code
  • Improve code efficiency
  • Correct logical errors

For product analyst roles

1. SQL queries

Zomato product analyst online assessment questions include:

  • Joins: Inner, left, right, full outer joins
  • Aggregations: GROUP BY, HAVING, aggregate functions
  • Window Functions: ROW_NUMBER, RANK, DENSE_RANK
  • Subqueries: Correlated and non-correlated subqueries
  • Data Manipulation: INSERT, UPDATE, DELETE operations

2. Data analysis problems

  • Interpreting data and finding insights
  • Product metrics calculation
  • A/B testing analysis
  • Business logic questions

3. Case study questions

  • Food delivery domain problems
  • Order matching optimization
  • Delivery time analysis
  • Customer behavior analysis

Sample Zomato Online Assessment questions

SDE role questions

Question 1: array problem

Q: Given an array of delivery times, find the minimum time to deliver all orders (similar to meeting rooms problem).

Problem: Given delivery times for orders, find the minimum time to complete all deliveries with limited delivery agents.

Solution:

public int minDeliveryTime(int[] deliveryTimes, int agents) {
Arrays.sort(deliveryTimes);
int[] agentSchedule = new int[agents];
for (int time : deliveryTimes) {
int minAgent = 0;
for (int i = 1; i < agents; i++) {
if (agentSchedule[i] < agentSchedule[minAgent]) {
minAgent = i;
}
}
agentSchedule[minAgent] += time;
}
int maxTime = 0;
for (int time : agentSchedule) {
maxTime = Math.max(maxTime, time);
}
return maxTime;
}

Time Complexity: O(n log n + n*k) where k is number of agents

Question 2: graph problem

Q: Find the shortest path for delivery (Dijkstra’s algorithm variant).

Solution:

public int shortestDeliveryPath(int[][] graph, int start, int end) {
int n = graph.length;
int[] dist = new int[n];
Arrays.fill(dist, Integer.MAX_VALUE);
dist[start] = 0;
PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> a[1] - b[1]);
pq.offer(new int[]{start, 0});
while (!pq.isEmpty()) {
int[] curr = pq.poll();
int node = curr[0], distance = curr[1];
if (node == end) return distance;
if (distance > dist[node]) continue;
for (int i = 0; i < n; i++) {
if (graph[node][i] > 0) {
int newDist = distance + graph[node][i];
if (newDist < dist[i]) {
dist[i] = newDist;
pq.offer(new int[]{i, newDist});
}
}
}
}
return -1; // No path found
}

Product analyst role questions

Question 1: SQL query

Q: Find the top 5 restaurants by order count in the last 30 days.

Solution:

SELECT
r.restaurant_id,
r.restaurant_name,
COUNT(o.order_id) AS order_count
FROM restaurants r
JOIN orders o ON r.restaurant_id = o.restaurant_id
WHERE o.order_date >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)
GROUP BY r.restaurant_id, r.restaurant_name
ORDER BY order_count DESC
LIMIT 5;

Question 2: data analysis

Q: Analyze delivery time trends and identify factors affecting delivery time.

Analysis Approach:

  1. Calculate average delivery time by time of day
  2. Analyze delivery time by restaurant location
  3. Identify peak hours with longer delivery times
  4. Correlate delivery time with order value
  5. Find restaurants with consistently long delivery times

Key Metrics:

  • Average delivery time
  • Delivery time by hour
  • Delivery time by location
  • On-time delivery percentage

Zomato product analyst OA - deep dive

The Zomato Product Analyst OA (from student reports) is less “LeetCode hard” and more SQL + metrics + product sense. Expect a timed online set that mixes query writing, interpreting tables/charts, and short case prompts about food-delivery funnels.

PA OA block What shows up Pass signal
SQL Joins, GROUP BY, window functions, date filters Correct logic + readable query
Metrics AOV, retention, conversion, delivery SLA Define metric before computing
Case / product Promo impact, restaurant ranking, ETA Structured recommendation
Light Python/Excel (some drives) Aggregate / clean a small table Clean steps > fancy code

Extra product analyst OA samples

Q3 (SQL): Repeat customers in last 90 days

Count users with ≥2 completed orders in the last 90 days.

SELECT COUNT(*) AS repeat_users
FROM (
SELECT user_id
FROM orders
WHERE status = 'completed'
AND order_date >= CURRENT_DATE - INTERVAL '90' DAY
GROUP BY user_id
HAVING COUNT(*) >= 2
) t;
Q4 (Metrics): Promo ROI sketch

A ₹50 coupon on first orders lifts new users by 20% week-over-week, but average order value falls 8%. How would you decide if the promo should continue?

Approach: Estimate incremental margin = (incremental orders × contribution per order) − coupon cost − ops cost; check retention of coupon users in week 2-4; call out selection bias. PA OA rewards a clear framework over a single “yes/no.”

Q5 (Case): Restaurant discovery

Organic search CTR for “biryani” dropped 15% in one city. List three hypotheses and one metric to validate each.

Sample hypotheses: ranking bug, competitor ads, supply gap in top restaurants. Metrics: impression share, add-to-cart rate, active restaurant count in that cuisine.

How to prepare for Zomato Online Assessment

For SDE roles

Master DSA

Practice arrays, trees, graphs, and DP problems. Solve 100+ problems on LeetCode/HackerRank focusing on medium and hard problems.

Food delivery domain

Study order matching algorithms, delivery optimization, and system design concepts relevant to food delivery platforms.

Practice OA questions

Solve Zomato OA previous year questions. Practice under time constraints and focus on optimal solutions.

For product analyst roles

Master SQL

Practice complex SQL queries including joins, aggregations, window functions, and subqueries. Solve 50+ SQL problems.

Data analysis

Practice interpreting data, calculating metrics, and analyzing trends. Study product metrics and A/B testing concepts.

Domain knowledge

Understand food delivery business model, order flow, delivery optimization, and customer behavior patterns.

Zomato Online Assessment tips

General tips

  1. Understand Role Requirements: Prepare based on SDE vs Product Analyst role
  2. Read Problems Carefully: Understand constraints and requirements
  3. Plan Before Coding: Outline approach and algorithm
  4. Handle Edge Cases: Consider empty data, null values, etc.
  5. Test Your Code: Verify with sample inputs
  6. Manage Time: Allocate time wisely across questions

SDE-Specific tips

  1. Optimal Solutions: Focus on time/space complexity
  2. All Test Cases: Ensure all test cases pass
  3. Clean Code: Write readable, well-structured code
  4. Domain Context: Consider food delivery use cases

Product analyst-specific tips

  1. SQL Best Practices: Write efficient, readable queries
  2. Data Interpretation: Clearly explain insights
  3. Business Logic: Connect analysis to business impact
  4. Metrics Calculation: Accurately calculate product metrics

External preparation resources for Online Assessment

Youtube tutorials & video guides

DSA & coding practice

Recommended Channels:

  • Take U Forward - Complete DSA course, coding interview prep

  • Striver’s SDE Sheet - 180+ coding problems with video solutions

  • Aditya Verma - Dynamic programming masterclass

  • CodeWithHarry - Programming fundamentals

    Search: “Zomato OA questions”, “online assessment preparation”, “coding interview practice”

Mock OA practice

YouTube Search:

  • “Zomato online assessment experience”

  • “Zomato OA questions 2025”

  • “How to clear Zomato coding round”

  • “Zomato HackerRank test”

    Learn from candidates who cleared Zomato OA

Online practice platforms

Prepinsta

PrepInsta Resources:

  • Zomato OA mock tests

  • Previous year OA questions

  • Practice tests with solutions

  • Time management tips

    Website: prepinsta.com/zomato

HackerRank

HackerRank Practice:

  • Coding challenges similar to Zomato OA

  • Practice problems by difficulty

  • Mock assessments

  • Time-bound practice

    Website: hackerrank.com

LeetCode

LeetCode Practice:

  • 2000+ coding problems

  • Company-tagged questions

  • Mock interviews

  • Weekly contests

    Focus: Medium to hard problems for Zomato OA

Geeksforgeeks

GeeksforGeeks Resources:

  • Zomato OA experiences

  • Practice problems with solutions

  • Company-specific preparation

  • Interview preparation articles

    Website: geeksforgeeks.org/zomato

Practice resources

Comments & Suggestions

Similar companies

Swiggy · Flipkart · Paytm · Phonepe · Meesho · Blinkit