Skip to content

Data Analytics Interview Questions in Kochi

36 practice questions with answers for Data Analytics interviews in Kochi.

Data Analytics jobs in Kochi

Kochi's Infopark and SmartCity host IT-services firms, product companies and start-ups, making it Kerala's largest tech job market along with Thiruvananthapuram. Testing and data roles are common in its service and product teams.

Below are 36 questions that match the mix of service, product and domain employers hiring data analysts in Kochi.

Solved for KochiStart 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

Your sales data contains negative quantities. What do you do with them?

Save to ▾
Show answer
Do not delete them blindly. First find out what they mean: often they are returns, cancellations or credit notes, which are valid business events. Check with the source team or a documentation note. If they are returns, keep them but report gross sales, returns and net sales separately. If some are clearly entry errors, such as a negative quantity on a new order, flag and correct them and log the rule.
02

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.
03

Write pandas code to find the top 2 products by revenue in each region.

Save to ▾
Show answer
top2 = ( df.groupby(['region', 'product'], as_index=False)['revenue'] .sum() .sort_values(['region', 'revenue'], ascending=[True, False]) .groupby('region') .head(2) ) print(top2)
04

How do you create a new column from conditions?

Save to ▾
Show answer
Use np.where for one condition, np.select for several, or df.apply with a function for custom logic.
05

Explain time intelligence functions.

Power BIMedium
Save to ▾
Show answer
DAX functions like TOTALYTD, SAMEPERIODLASTYEAR and DATEADD compare periods; they need a proper continuous date table marked as a date table.
06

Tell me about a time you designed or improved a data model.

Save to ▾
Show answer
Situation: our sales reports used five separate Excel extracts and numbers never matched. Task: build one reliable model. Action: I listed the business questions, fixed the grain at invoice line, built conformed date, product and branch dimensions and moved logic into SQL views, then rebuilt the Power BI reports on top. Result: refresh time dropped from 40 to 6 minutes and month-end reconciliation queries fell sharply.
07

DAX: calculated column vs measure?

Power BIMedium
Save to ▾
Show answer
A calculated column is computed row by row and stored in the model. A measure is computed at query time using the filter context, e.g. Total Sales = SUM(Sales[Amount]). Prefer measures for aggregations.
08

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.
09

How do you split a full name column into first and last name in Excel?

Save to ▾
Show answer
-- A2 = 'Priya Ramesh Iyer' -- first name =TEXTBEFORE(TRIM(A2), " ") -- last name (text after the last space) =TEXTAFTER(TRIM(A2), " ", -1) -- older Excel: first name =LEFT(TRIM(A2), FIND(" ", TRIM(A2)&" ")-1) -- or use Data > Text to Columns or Flash Fill (Ctrl+E) for a one-off task
10

Write Python code to fit a simple linear regression of sales on ad spend.

Save to ▾
Show answer
import pandas as pd import statsmodels.formula.api as smf df = pd.read_csv('marketing.csv') model = smf.ols('sales ~ ad_spend', data=df).fit() print(model.summary()) # coefficients, p-values, R-squared # predicted sales for a spend of 50,000 print(model.predict(pd.DataFrame({'ad_spend': [50000]})))
11

What does CASE WHEN do?

SQLMedium
Save to ▾
Show answer
It adds conditional logic inside queries, for example bucketing ages or flagging values, returning different results per condition.
12

A manager asks for a dashboard that refreshes every minute. How do you decide the right refresh frequency?

Save to ▾
Show answer
Match refresh to how quickly decisions are made. A monthly board pack needs daily refresh at most, while a warehouse dispatch board may need 15-minute or live updates. Faster refresh costs more in source load, licensing and complexity, and can show incomplete data. Ask how quickly someone will act on a change, check when upstream systems finish loading, and always display the last refreshed time on the dashboard.
13

A campaign landing page gets heavy traffic but very few sign-ups. How would you diagnose it?

Save to ▾
Show answer
Check traffic quality first: is the right audience coming, and does the ad message match the page? Then look at page behaviour by device: load time, scroll depth, form start versus form submit, and which form field users abandon. Session recordings or heatmaps help. Test the form on mobile for errors. Common fixes are faster pages, fewer form fields, a clear call to action above the fold and matching the ad's offer.
14

Write Python code to extract valid 10-digit Indian mobile numbers from a messy text column.

Save to ▾
Show answer
import re pattern = re.compile(r'(?:\+?91[\s-]?|0)?([6-9]\d{9})') def get_mobile(text): if not isinstance(text, str): return None digits = re.sub(r'[\s()-]', '', text) m = pattern.search(digits) return m.group(1) if m else None df['mobile'] = df['contact'].apply(get_mobile)
15

What is a CTE and when would you use one?

SQLMedium
Save to ▾
Show answer
A Common Table Expression (WITH name AS (...)) is a named temporary result used inside one query. Use it to break complex logic into readable steps or for recursive queries.
16

Write SQL to find the top 3 products by revenue within each category.

SQLHard
Save to ▾
Show answer
WITH ranked AS ( SELECT category, product, SUM(amount) AS revenue, DENSE_RANK() OVER ( PARTITION BY category ORDER BY SUM(amount) DESC ) AS rnk FROM sales GROUP BY category, product ) SELECT category, product, revenue FROM ranked WHERE rnk <= 3 ORDER BY category, rnk;
17

What are Type I and Type II errors?

Save to ▾
Show answer
A Type I error is a false positive: concluding there is an effect when there is none, for example launching a feature that does not actually lift sales. Its probability is alpha, often 0.05. A Type II error is a false negative: missing a real effect, with probability beta. Power is 1 minus beta. Larger samples reduce Type II errors, and the business cost of each mistake should guide which one you guard against more.
18

What is a lambda function in Python and where do analysts use it?

Save to ▾
Show answer
A lambda is a small anonymous function written in one line, for example lambda x: x * 1.18 to add GST. Analysts use lambdas with sorted for custom sort keys, with pandas assign for computed columns, for example assign(margin=lambda d: d.profit / d.sales), and occasionally with apply. For anything longer than one expression or reused in several places, a normal def function is clearer and easier to test.
19

What does value_counts do in pandas, and how do you show percentages instead of counts?

Save to ▾
Show answer
value_counts returns how many times each unique value appears in a Series, sorted from most to least frequent. It is a quick way to check category distribution or spot typos. Pass normalize=True to get proportions, then multiply by 100 for percentages, for example df['city'].value_counts(normalize=True).mul(100).round(1). Use dropna=False to include missing values, which are excluded by default and are often important.
20

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.
21

How do you connect Python to a SQL database?

Save to ▾
Show answer
Create an engine with SQLAlchemy or a driver such as psycopg2, then run pd.read_sql(query, engine) to load results into a DataFrame.
22

A measure shows correct values per row in a table visual, but the grand total looks wrong. Why, and how do you fix it?

Power BIMedium
Save to ▾
Show answer
Totals in DAX are not the sum of visible rows; the measure is recalculated in the total's filter context. A measure like a distinct count, a ratio or an IF condition can give a different result at total level. If the business wants the sum of row values, iterate explicitly, for example SUMX ( VALUES ( Product[Name] ), [My Measure] ). Confirm with stakeholders which total is correct before changing it.
23

Why do you want to work as a data analyst?

Save to ▾
Show answer
A good answer links genuine interest, evidence and the role. For example: I enjoy turning messy questions into clear answers. In my final-year project I analysed two years of canteen sales in Excel and Python and showed that changing the menu on exam weeks could cut waste. I liked that the analysis led to an actual change. I want a role where my SQL, Power BI and communication skills help teams make better decisions.
24

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.
25

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.
26

What is a query execution plan and how do you read it?

SQLHard
Save to ▾
Show answer
An execution plan shows how the database will run a query: which indexes it uses, join methods such as nested loop or hash join, scan types and estimated rows. You get it with EXPLAIN, or EXPLAIN ANALYZE for actual timings. Look for full table scans on big tables, large gaps between estimated and actual rows, and expensive sorts. These point to missing indexes, stale statistics or non-sargable filters like functions on columns.
27

Write a Tableau calculation to find each customer's first purchase date and flag new versus repeat orders.

TableauMedium
Save to ▾
Show answer
// First Purchase Date { FIXED [Customer ID] : MIN([Order Date]) } // Order Type IF [Order Date] = [First Purchase Date] THEN 'New' ELSE 'Repeat' END // Cohort Month for retention analysis DATETRUNC('month', [First Purchase Date])
28

Tell me about a time you found a serious data quality issue.

Save to ▾
Show answer
Situation: while building a returns report I noticed one warehouse had zero returns for three months. Task: confirm whether it was real. Action: I compared with the source system and found its return codes had changed after a software update, so my filter missed them. I informed the data owner, updated the mapping and back-filled the history. Result: the corrected report showed that warehouse had the highest return rate, which led to a packaging review.
29

Sales dropped 20% last month. How will you analyse it?

Save to ▾
Show answer
Confirm data accuracy first → break down by region, product, channel and customer segment → compare with seasonality and last year → check pricing, stock-outs, marketing changes and funnel conversion → present the root causes with clear charts.
30

What are variables (VAR) in DAX and why are they useful?

Power BIMedium
Save to ▾
Show answer
VAR stores the result of an expression inside a measure, and RETURN gives the final output. Variables make measures readable, avoid evaluating the same expression twice, and are evaluated in the filter context where they are defined, which helps avoid subtle bugs inside CALCULATE. They also make debugging easy, because you can temporarily RETURN a variable to check its value before returning the final result.
31

What is the medallion architecture (bronze, silver, gold)?

Save to ▾
Show answer
Medallion architecture organises a lakehouse into three layers. Bronze holds raw data exactly as ingested, for audit and reprocessing. Silver holds cleaned, deduplicated, typed and joined data. Gold holds business-ready tables such as star schemas and aggregates used by dashboards. Each layer is built from the previous one by repeatable jobs, so if a cleaning rule changes you can rebuild silver and gold from bronze.
32

Write Python code to calculate the sample size per group for a conversion test with a 4% baseline and a 10% relative lift.

Save to ▾
Show answer
from statsmodels.stats.power import NormalIndPower from statsmodels.stats.proportion import proportion_effectsize baseline = 0.04 target = baseline * 1.10 # 4.4% effect = proportion_effectsize(target, baseline) n = NormalIndPower().solve_power( effect_size=effect, alpha=0.05, power=0.8, alternative='two-sided' ) print(round(n)) # roughly 39,000 users per group
33

How do you optimise a slow SQL query?

SQLHard
Save to ▾
Show answer
Read the execution plan, add or fix indexes, select only needed columns, filter early, avoid functions on indexed columns, and replace correlated subqueries with joins.
34

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
35

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.
36

What is the Central Limit Theorem and why does it matter for analysts?

Save to ▾
Show answer
The Central Limit Theorem says that the distribution of sample means approaches a normal distribution as sample size grows, usually from about 30 observations, even if the underlying data is skewed. This is why we can use z-tests, t-tests and confidence intervals for averages such as order value or session time. It does not make the raw data normal, and very heavy-tailed data may need larger samples.

Companies with offices in Kochi (3)

Few big employers listed in Kochi?

Many Kochi candidates also apply to teams in Bangalore and to remote or hybrid roles. Practise the Bangalore set as well.

Frequently asked questions

Which companies hire Data Analytics professionals in Kochi?

Companies with large offices in Kochi include EY, UST, Grant Thornton Bharat. Use their company pages below to practise employer-specific sets.

Are Data Analytics interviews in Kochi different from other cities?

The questions depend more on the company than the city. Kochi's mix of employers decides the style: Testing and data roles are common in its service and product teams

How do I find Data Analytics jobs in Kochi?

Shortlist companies with Kochi offices, keep your CV focused on Data Analytics projects, apply on company career pages and job portals with the Kochi filter, and practise the questions on this page before each interview.