Data Analytics Interview Questions & Answers (2026 Guide)


We experienced that data analyst interviews in Australia test three things: your SQL, your Python, and your ability to explain what the data means to someone who does not write code. Most candidates pass two out of three and wonder why they did not get the offer. This guide gives you 20+ real interview questions across SQL, Python, statistics, and behavioural categories, with sample answers, working code, difficulty ratings, and the exact framing Australian hiring managers respond to.
What we covered: SQL questions (with queries)
• Python & pandas questions (with code)
• Statistics & concepts
• Behavioural & case-based questions
• Difficulty ratings for every question
• Frequently Asked Questions
SQL appears in 80% of job ads and Python in over 60%, according to SEEK. The biggest gap hiring managers report is candidates who know the data analytics tools but cannot explain their reasoning to a non-technical stakeholder. Every question below is rated by the round it typically appears in:
Easy Likely in every first-round screen | Medium Common in technical rounds | Hard Senior roles & take-home tests |
SQL Interview Questions
SQL is the first filter. Most companies run a 30–45 minute SQL screen before anything else. The questions below reflect what comes up in Australian data analyst interviews across finance, retail, healthcare, and tech. Practice these until you can write them without Googling syntax.
Easy
Q1. Differentiate WHERE and HAVING?
-- Filter BEFORE aggregation (use WHERE) |
SELECT department, COUNT(*) AS headcount |
FROM employees |
WHERE status = 'active' |
GROUP BY department; |
|
-- Filter AFTER aggregation (use HAVING) |
SELECT department, COUNT(*) AS headcount |
FROM employees |
GROUP BY department |
HAVING COUNT(*) > 10; |
Short answer: WHERE filters rows before aggregation. HAVING filters after aggregation.
The mistake most candidates make is using HAVING when they mean WHERE, which forces the database to aggregate data it will then throw away, slow and unnecessary.
Easy
Q2. Explain the difference between INNER JOIN, LEFT JOIN, and FULL OUTER JOIN?
SELECT c.name, o.order_id |
FROM customers c |
LEFT JOIN orders o ON c.id = o.customer_id |
WHERE o.order_id IS NULL; -- customers with no orders |
INNER JOIN: returns only rows that match in both tables.
LEFT JOIN: returns all rows from the left table, and matching rows from the right. Unmatched right rows appear as NULL.
FULL OUTER JOIN: returns all rows from both tables. NULLs appear where there is no match on either side.
Hiring managers often follow this up with: 'Give me a scenario where you'd use a LEFT JOIN instead of INNER JOIN.' A strong answer: 'When I need to identify customers who have never placed an order. I join the customers table to the orders table on customer_id and filter WHERE orders.id IS NULL.'
Medium
Q3. Write a query to find the second-highest salary in a table.
-- Approach 1: subquery (readable) |
SELECT MAX(salary) AS second_highest |
FROM employees |
WHERE salary < (SELECT MAX(salary) FROM employees); |
|
-- Approach 2: window function (preferred for clarity at scale) |
SELECT salary AS second_highest |
FROM ( |
SELECT salary, |
DENSE_RANK() OVER (ORDER BY salary DESC) AS rnk |
FROM employees |
) ranked |
WHERE rnk = 2 |
LIMIT 1; |
This is one of the most common SQL screening questions. There are two clean approaches, know both.
Medium
Q4. What are window functions and when would you use them?
-- Running total of daily revenue |
SELECT |
sale_date, |
revenue, |
SUM(revenue) OVER (ORDER BY sale_date) AS running_total |
FROM daily_sales; |
|
-- Month-over-month comparison with LAG |
SELECT |
month, |
revenue, |
LAG(revenue, 1) OVER (ORDER BY month) AS prev_month, |
revenue - LAG(revenue, 1) OVER (ORDER BY month) AS change |
FROM monthly_revenue; |
Window functions perform calculations across a set of rows related to the current row, without collapsing the result set the way GROUP BY does. They are essential for rankings, running totals, and period-over-period comparisons.
Common functions: ROW_NUMBER(), RANK(), DENSE_RANK(), LAG(), LEAD(), SUM() OVER(), AVG() OVER()
Hard
Q5. Write a query to identify customers who made a purchase in Q1 but not in Q2 (Australian financial year: Q1 = Jul–Sep).
SELECT DISTINCT q1.customer_id |
FROM ( |
SELECT customer_id |
FROM orders |
WHERE order_date BETWEEN '2025-07-01' AND '2025-09-30' |
) q1 |
LEFT JOIN ( |
SELECT customer_id |
FROM orders |
WHERE order_date BETWEEN '2025-10-01' AND '2025-12-31' |
) q2 ON q1.customer_id = q2.customer_id |
WHERE q2.customer_id IS NULL; |
|
-- Note: Australian FY Q1 = Jul-Sep, Q2 = Oct-Dec |
This tests your ability to think in terms of cohorts, a core skill for retention and churn analysis. The Australian financial year starts 1 July, so Q1 is July–September and Q2 is October–December.
Hard
Q6. How would you optimise a slow-running SQL query?
This question separates candidates who have worked with real databases from those who have only done course exercises. A strong answer covers:
Check the execution plan (EXPLAIN or EXPLAIN ANALYZE), identify full table scans
Add indexes on columns used in WHERE, JOIN, and ORDER BY clauses
Avoid SELECT * ; only retrieve the columns you need
Filter early using WHERE before joins where possible
Replace correlated subqueries with JOINs or CTEs
Use partitioning on large tables filtered by date ranges
Mention a real example if you have one: 'In a previous role I reduced a dashboard query from 45 seconds to 3 seconds by adding a composite index on (customer_id, order_date) and moving the date filter into a CTE.'
Python & Pandas Interview Questions
Python questions in data analyst interviews rarely ask you to build models from scratch. They test whether you can clean and transform data efficiently, handle missing values, and automate the kind of tasks most analysts do manually in Excel. The library you need to know inside out is pandas.
Easy
Q7. How do you handle missing values in a pandas DataFrame?
import pandas as pd |
|
df = pd.read_csv('sales.csv') |
|
# Check missing values |
print(df.isnull().sum()) |
|
# Drop rows where critical columns are missing |
df.dropna(subset=['customer_id', 'order_date'], inplace=True) |
|
# Fill numeric column with median (safer for skewed data) |
df['revenue'].fillna(df['revenue'].median(), inplace=True) |
|
# Fill categorical column with a constant |
df['region'].fillna('Unknown', inplace=True) |
Three main approaches and when to use each:
Drop: appropriate when missing values are rare (less than 5%) and random.
Fill with a constant: appropriate for categorical data (e.g., 'Unknown').
Fill with a statistical measure: appropriate for numerical data, use mean for normally distributed columns, median for skewed ones.
Medium
Q8. Write Python code to find duplicate rows and remove them, keeping the most recent record.
import pandas as pd |
|
df = pd.read_csv('customers.csv') |
# Assume 'customer_id' is the unique key and 'updated_at' is a timestamp |
|
# Sort by timestamp descending so keep='first' keeps the most recent |
df_clean = ( |
df.sort_values('updated_at', ascending=False) |
.drop_duplicates(subset='customer_id', keep='first') |
.reset_index(drop=True) |
) |
|
print(f'Removed {len(df) - len(df_clean)} duplicate rows') |
This is a classic data cleaning task. The key is specifying both the subset of columns to check for duplicates, and which record to keep.
Medium
Q9. How do you merge two DataFrames and what is the difference between merge() and concat()?
# merge() — SQL-style join on a key |
result = pd.merge(orders, customers, on='customer_id', how='left') |
|
# concat() — stack rows (like SQL UNION ALL) |
q1 = pd.read_csv('q1_sales.csv') |
q2 = pd.read_csv('q2_sales.csv') |
combined = pd.concat([q1, q2], ignore_index=True) |
merge(): joins DataFrames on shared key columns (like a SQL JOIN). Use when datasets share a key (e.g., customer_id).
concat(): stacks DataFrames along an axis, either rows (axis=0, like UNION ALL) or columns (axis=1). Use when datasets have the same structure.
Hard
Q10. Write Python code to calculate 7-day rolling average revenue and flag days where revenue dropped more than 20% below that average.
import pandas as pd |
|
df = pd.read_csv('daily_revenue.csv', parse_dates=['date']) |
df = df.sort_values('date').reset_index(drop=True) |
|
# 7-day rolling average |
df['rolling_avg_7d'] = df['revenue'].rolling(window=7, min_periods=1).mean() |
|
# Flag days where revenue is more than 20% below rolling average |
df['alert'] = df['revenue'] < (df['rolling_avg_7d'] * 0.80) |
|
alerts = df[df['alert']][['date', 'revenue', 'rolling_avg_7d']] |
print(f'{len(alerts)} days flagged for review:') |
print(alerts) |
This is a real-world business monitoring task. It tests rolling windows, conditional logic, and the ability to produce a result a business stakeholder can act on.
Hard
Q11. How would you use Python to automate a weekly sales report that previously took 2 hours in Excel?
This is a behavioural-meets-technical question. A strong answer outlines the approach before jumping into code:
Read the raw data from the source (CSV, database, API)
Clean and transform it with pandas (handle nulls, correct data types, aggregate by week)
Generate the summary tables and charts using matplotlib or plotly
Export to Excel using openpyxl or to PDF, or send via email using smtplib
Schedule with a cron job, Windows Task Scheduler, or Airflow for full automation
If you have done this in a real role, say so specifically: 'In my previous role I automated a weekly inventory report using pandas and openpyxl. It reduced the analyst's prep time from 2 hours to 4 minutes and eliminated a recurring category of formula errors.'
Not sure if your answers would actually land the job?
Practice with a real data analyst mentor on Emergi Mentors. Mock interview sessions include live SQL and Python Q&As, behavioral coaching, and honest feedback from someone who has sat on the hiring side of the table in Australia.
Statistics & Analytical Concepts
Australian hiring managers are not looking for a statistics lecturer. They want to know whether you can apply the right concept to a business problem and explain the result in plain English. Focus your answers on interpretation and context.
Easy
Q12. What is the difference between mean and median, and when would you use each?
Mean: the average of all values. Sensitive to outliers.
Median: the middle value when data is sorted. Resistant to outliers.
Use the median when your data is skewed or contains outliers such as property prices, income, and session length. Use the mean when the distribution is roughly symmetric, and outliers are not a concern.
💡 ‘Property prices in Sydney’ are a classic Australian example. The mean is pulled up by a small number of $10M+ sales. The median gives a more accurate picture of what a typical buyer pays.
Easy
Q13. What is the difference between correlation and causation?
Correlation means two variables move together. Causation means one directly causes the other. This is arguably the most important statistical concept for a data analyst to communicate clearly, because business stakeholders regularly confuse the two.
A strong answer includes an example: 'Ice cream sales and drowning rates are correlated, both increase in summer. But ice cream does not cause drowning. The confounding variable is hot weather. Before recommending any action based on a correlation, I would design a controlled test or look for a natural experiment to establish causation’.
Medium
Q14. What is A/B testing and how would you decide if a result is statistically significant?
An A/B test compares two versions of something (a webpage, a feature, a price) by exposing different groups of users to each version and measuring the outcome.
To assess statistical significance:
Define your hypothesis (e.g., 'Version B will increase conversion rate by more than 5%')
Set your significance level in advance, typically p < 0.05 in Australian product teams
Calculate the p-value after the test; if it falls below 0.05, the result is statistically significant
Check practical significance too; a 0.01% lift might be statistically significant but commercially irrelevant
Also mention sample size calculators and the risk of peeking at results early In 2026, which inflates false positive rates.
Medium
Q15. What is data normalisation and why does it matter?
Short answer: normalisation rescales numeric features to a common range so that differences in scale do not distort analysis or model performance.
Min-Max scaling: compresses values to 0–1. Sensitive to outliers.
Z-score standardisation: transforms values to mean=0, standard deviation=1. More robust to outliers.
It matters when you are comparing features with very different scales (e.g., age in years vs revenue in dollars) or feeding data into machine learning models where distance or gradient matters. For pure SQL reporting and dashboard work, normalisation is rarely needed.
Hard
Q16. Our Q3 revenue dropped 12% compared to Q2. How would you investigate the cause?
This is a case-based question testing structured thinking. Walk through your approach clearly before mentioning any tools.
Step 1: Decompose the problem. Revenue = Volume x Price. First establish whether volume fell, price fell, or both.
Step 2: Segment the data. Break down by product, geography, customer segment, and channel to identify where the drop is concentrated.
Step 3: Look at external factors. Check for seasonality (Q3 in Australia spans January–March, often affected by summer holidays and post-Christmas slowdowns), competitor promotions, or supply disruptions.
Step 4: Check internal changes. Were there pricing changes, campaign pauses, product removals, or website issues in that period?
Step 5: Validate the data. Before presenting any finding, confirm the numbers are correct, check for reporting delays, pipeline changes, or currency conversion errors.
⚠️ Australian FY Q3 = January–March. If an interviewer says 'Q3', confirm whether they mean calendar year or financial year — the answer matters for seasonality analysis
Behavioural & Communication Questions
Technical skills get you to the interview. Behavioural answers determine whether you get the offer. Australian hiring managers are specifically testing communication style, stakeholder management, and how you handle ambiguity and conflict. Answers should be specific and concrete; avoid generic responses about 'always communicating clearly'.
Easy
Q17. Tell me about yourself.
Structure your answer in three parts: where you have been, what you bring, and where you are heading. Keep it under 90 seconds.
Example structure: 'I have X years of experience in [domain], where I focused on [specific type of analysis]. More recently I have been building skills in [Python/SQL/Power BI] through [specific project or course]. I am looking for a role where I can [specific goal aligned with the job].
Do not recite your CV chronologically. The interviewer has already read it. This is your chance to show how your story connects to their problem.
Medium
Q18. Tell me about a time you had to explain a complex data finding to a non-technical stakeholder.
This is the question that eliminates the most technically competent candidates. Australian workplace culture values clarity over complexity.
A strong STAR answer: 'In my previous role [Situation], the CFO needed to understand why our customer acquisition cost had increased 30% despite the marketing budget staying flat [Task]. Rather than walking through the SQL query, I built a single slide with two charts — one showing the traffic breakdown by channel and one showing the conversion rate change by device. In 10 minutes the CFO approved a budget reallocation to mobile-optimised ads [Result]. The key was showing the business implication before the data, not after.'
💡 Lead with the 'so what', then the 'how'. Senior stakeholders want to know what action to take. The methodology is secondary.
Medium
Q19. Describe a time you found an error in data or a report. What did you do?
This question tests your attention to detail, honesty, and judgment under pressure.
A strong answer covers: how you found it, whether you raised it before or after it went to stakeholders, what you did to correct it, and what you put in place to prevent recurrence. Mention the process change, not just the fix, that signals maturity.
Avoid answers that imply you always catch errors before anyone else sees them. Interviewers have worked with messy data and know that errors reach stakeholders. What matters is how you handled it when that happened.
Hard
Q20. A business stakeholder requests a metric that you believe is misleading. How do you handle it?
This question tests your commercial judgment and interpersonal skills simultaneously. A weak answer either capitulates (builds the metric anyway) or confronts (refuses outright). A strong answer seeks to understand first.
Example approach: 'I would start by asking what decision or action the metric is meant to inform. Often the stakeholder has a legitimate business need that their requested metric does not actually address well. Once I understand the underlying question, I can propose a metric that answers it more accurately and explain the risk in the original request. If they still want the original metric after that conversation, I would build it but ensure the accompanying context makes the limitation clear.'
Australian Context Questions
Many candidates are well-prepared technically but stumble when interviewers ask about Australian-specific context. These questions come up regularly in banking, retail, and government roles.
Easy
Q21. What is the Australian financial year and how does it affect your analysis?
The Australian financial year runs from 1 July to 30 June, not January to December. This affects how you define quarters, calculate year-over-year comparisons, and interpret seasonal patterns.
Key implication: Australian summer (December–February) falls in financial Q2, not Q4. Retail peaks in December but that is mid-financial year, not year-end. Always confirm which year definition a stakeholder is using before building a report.
Medium
Q22. How does the Australian Privacy Act 1988 affect how you handle customer data?
The Privacy Act 1988 and its Australian Privacy Principles (APPs) govern how organisations collect, store, use, and disclose personal information. For a data analyst, the practical implications are:
You cannot use personal data for a purpose beyond what it was collected for without consent
Data must be de-identified or aggregated when sharing with third parties or in reports
You should never include PII (names, emails, Medicare numbers) in test datasets or exports
The 2024 reforms increased penalties significantly, breaches now carry fines up to $50 million
Mentioning the Privacy Act in an interview signals commercial awareness that many candidates miss. Reference it when discussing data governance and cleaning.
Medium
Q23. You are given ABS (Australian Bureau of Statistics) data. What are three things you would check before using it?
Collection date and methodology: ABS data is released on a lag and collection methods change, confirm you are using the right release and that the methodology is comparable to previous periods
Geographic level: ABS data comes in multiple levels (SA1, SA2, LGA, state) confirm you are using the right granularity for your analysis
Seasonal adjustment: ABS publishes both seasonally adjusted and original series, for trend analysis, use the seasonally adjusted series; for year-over-year comparisons using original can introduce seasonal noise
Referencing ABS directly (rather than secondary sources) in an interview is a strong signal of professional data practice.
The biggest difference between candidates who get offers and those who do not is not technical depth, it is the ability to think out loud clearly under pressure. Practising with a mentor who has sat on the hiring side of the table is the fastest way to close that gap.
People Also Ask
How many interview rounds does a data analyst interview have in Australia?
Most Australian data analyst roles run 3–4 rounds: an HR/recruiter screen, a technical SQL/Python round, a hiring manager interview focused on business acumen and behavioural questions, and sometimes a take-home case study or final panel. Government roles may add a written application stage.
What SQL level do you need for a data analyst interview?
Intermediate SQL is expected at entry level, Mid-level roles expect window functions and query optimisation basics. Senior roles may test stored procedures, query performance tuning, and schema design.
What questions should I ask at the end of a data analyst interview?
Few important question you should ask are: What does the data team's current stack look like? What is the biggest data quality challenge your team faces right now? How does the analytics team's output typically influence business decisions? What does success look like in this role after 90 days? Avoid asking about salary or leave in early rounds.
Do data analysts need Python for interviews in Australia?
Yes, Python appears in over 60% of Australian data analyst job ads as of 2026.
Preparing for data analytics interviews is an investment in your career growth. Focus on understanding concepts deeply rather than memorizing answers, and remember that interviewers often value curiosity and problem-solving approach over perfect technical knowledge.
























































