Free data analyst interview prep
by Mahendra Singh ยท Data Analytics Mentor
Crack your data analyst interview โ one topic at a time
Real interview questions, project explanation frameworks, and a free read-online prep library โ built from actual interview experiences, not textbook theory. Everything is free, everything is practical.
Pick a topic
How to give your introduction
The first 90 seconds decide the interview mood. Learn the exact formula with sample answers.
8 lessons โ02Project explanation
How to explain your project so the panel is actually impressed โ with a full sample walkthrough.
Framework + sample โ03Power BI questions
Scenario-based Power BI questions asked in real interviews โ DAX, data modeling, performance.
18 full answers โ04Tableau questions
Filters, LOD, blending, live vs extract, Tableau Server โ the full developer question bank.
140+ questions โ05Excel questions
Pivot tables, XLOOKUP, Power Query and everything Excel an analyst must know.
80+ questions โ06SQL questions
Real query-writing questions with copy-ready solutions โ the round most people fail.
26 full answers โ07Company-wise questions
Real questions from TCS, Deloitte, Goldman Sachs, EATON, Virtusa & more โ with answers.
10 companies โ08Resume & Naukri profile
ATS-friendly resume rules and Naukri optimization to get more interview calls.
2 guides โ09Business Analyst
BA interview guide โ BRD vs FRD, elicitation, Agile, JIRA, scenario questions.
10+ questions & PDFs โ10Data Warehousing
OLTP vs OLAP, star schema, ETL, SCD โ the concepts behind every analytics job.
8 concepts โ11Data Science & AI
Python, statistics, machine learning and Generative AI questions โ your next career level.
35+ questions โHow to give your introduction
The introduction sets the tone for the entire interview โ most panels form their opinion in the first two minutes. Here is the exact structure, with ready-made samples you can adapt.
EasyWhat is the ideal structure of a self-introduction?
Use this 4-part formula. Total time: 60โ90 seconds, never more.
- Who you are โ name, education / current role (10 sec)
- What you know โ your core skills: SQL, Power BI/Tableau, Excel, Python (20 sec)
- What you have done โ 1โ2 projects with a concrete outcome (30โ40 sec)
- Why this role โ one line connecting you to the job (10 sec)
End confidently. Do not trail off with "โฆthat's it about me, sir."
EasySample introduction for a fresher
"Good morning! I'm Rahul, a B.Com graduate from Delhi University. Over the last year I've built my skills in SQL, Power BI and Excel through certifications and hands-on projects. My main project is a retail sales dashboard where I analyzed 50,000+ rows of sales data โ I cleaned the data with Power Query, modeled it in a star schema, and built DAX measures for KPIs like year-over-year growth. The dashboard helped identify that 30% of revenue came from just 2 product categories. I'm now looking for a data analyst role where I can apply these skills to real business problems."
Why this works: concrete tools, concrete numbers, concrete insight โ no vague words like "passionate" or "hardworking".
EasySample introduction if you have work experience
"I'm Priya, currently working as an MIS executive at XYZ Ltd with 2 years of experience. My day-to-day work involves building reports in Excel and SQL for the sales team โ I automated our weekly reporting which used to take 4 hours and now takes 20 minutes. Recently I upskilled in Power BI and migrated three of our key Excel reports into interactive dashboards used by 15+ stakeholders. I'm looking to move into a full-time data analyst role where I can work on deeper analysis beyond reporting."
Key pattern: current role โ a quantified achievement โ new skill โ clear reason for switching.
MediumWhat should you NEVER say in an introduction?
- Family details โ "I live with my parents, my father is a farmerโฆ" (nobody asked)
- Reciting your resume line by line โ they already have it
- Hobbies, unless asked โ save the time for projects
- "I am a quick learner / hardworking / passionate" without proof โ show, don't tell
- Negative framing โ "I don't have much experience butโฆ" Never open with a weakness.
MediumHow do you handle 'Tell me about yourself' vs 'Walk me through your resume'?
They sound similar but expect different answers:
- Tell me about yourself โ the 90-second formula above: present โ skills โ project โ fit.
- Walk me through your resume โ chronological story: education โ each role/project in order โ why each move made sense โ why this role is the logical next step. Focus on transitions and reasons, not job descriptions.
MediumHow to explain a career gap or a non-technical background?
Own it in one sentence, then immediately pivot to what you did about it:
"After my graduation I took 8 months to seriously upskill โ I completed SQL and Power BI training and built 3 portfolio projects, which I'd love to walk you through."
Rules: never apologize, never over-explain, always land on your projects. A gap filled with visible learning is not a weakness.
EasyWhat if the interviewer says 'Introduce yourself in one line'?
Have a one-liner ready: identity + strongest skill + strongest proof.
"I'm a data analyst skilled in SQL and Power BI, and I recently built a sales dashboard that helped identify the top 20% products driving 80% of revenue."
EasyBody language & delivery tips for the introduction
- Practice out loud 10+ times โ it must sound natural, not memorized
- Smile at the start, make eye contact (look into the camera on video calls)
- Speak 10% slower than feels natural โ nervous candidates rush
- In virtual interviews: camera at eye level, plain background, join 5 minutes early
- Keep water nearby; a dry throat mid-intro is very common
Explain your project โ and actually impress the panel
Project explanation is where most data analyst interviews are won or lost. Learn the framework, then practice with the full sample below.
EasyThe 6-step framework to explain any project
- Business problem โ what question was the business trying to answer? (1โ2 lines)
- Data โ sources, size, key tables/columns
- Tools โ SQL for extraction, Power Query for cleaning, Power BI for visuals, etc.
- Your process โ cleaning โ modeling โ analysis โ dashboard (this is 60% of your answer)
- Insights โ 2โ3 specific findings with numbers
- Impact โ what decision or improvement did it enable?
If you can't state the business problem in one line, the panel assumes you just followed a YouTube tutorial.
MediumFull sample answer: Retail sales dashboard project (Power BI)
Problem: "A retail business wanted to understand sales performance, customer behaviour and product demand across regions โ reporting was manual Excel files emailed every week."
Data: "Sales transactions from SQL Server (~200K rows), product and customer masters from Excel, and targets from a shared drive."
Process: "I pulled data with SQL, cleaned it in Power Query โ removing duplicates, fixing data types, splitting the datetime column, and unpivoting the monthly-target sheet. I modeled it as a star schema โ a central Sales fact table linked to Product, Customer and Date dimensions. Then I wrote DAX measures for Total Sales, Profit Margin and Year-over-Year growth, and designed the report with slicers and drill-through pages."
Insight & impact: "The dashboard showed 30% of revenue came from two categories, and one region was consistently missing targets due to stockouts. Management used it to rebalance inventory, and weekly reporting effort dropped from 4 hours to zero."
EasyWhat are your roles & responsibilities in the project?
Structure the answer around the pipeline so it sounds complete:
- Data extraction & transformation โ collected data from SQL databases, Excel and cloud storage; cleaned it in Power Query
- Data modeling โ built Fact/Dimension relationships using a star schema
- DAX calculations โ measures for KPIs like Total Sales, Profit Margin, YoY growth
- Dashboard design โ slicers, drill-throughs, bookmarks for a clean user experience
- Deployment โ published to Power BI Service, scheduled refresh, shared with stakeholders
MediumCross-question: 'What transformations did you use?'
Be ready with 5โ6 specific ones and one example:
- Removing duplicates, changing data types, splitting columns (full name โ first/last)
- Merging queries to combine datasets, adding custom columns (Profit = Sales โ Cost)
- Unpivoting wide data into a normalized structure
Example line: "I split the DateTime column into separate Date and Time fields so filtering and time-based analysis became easier."
MediumCross-question: 'What data sources did you use?'
Name 3โ4 you can actually defend: SQL Server / MySQL for structured data, Excel/CSV for offline data, SharePoint or Google Sheets for shared files, and optionally a REST API or cloud source (Azure/AWS) if you have really touched one. Never name a source you cannot answer follow-up questions about.
HardCross-question: 'What challenges did you face?'
Pick a real, technical challenge and its solution โ not "time management".
Example: "The product master had duplicate product IDs with slightly different names, which broke my relationships. I traced it in Power Query, standardized the names, and de-duplicated on ID โ and I learned to always profile data before modeling it."
EasyHow many projects should a fresher have?
2โ3 solid projects beat 6 shallow ones. Ideal mix: one SQL-heavy analysis project, one dashboard project (Power BI or Tableau), and one Excel/end-to-end project. Host them on GitHub, and put dashboard screenshots or a public Power BI/Tableau link on your resume.
Power BI interview questions
Complete scenario-based Power BI question bank with full detailed answers, organised by difficulty. Click any question to open its answer.
๐ข Easy โ 6 questions
EasyQ1. What did you do with your project and what are your roles & responsibilities?
In my project, I worked on building an interactive Power BI dashboard for a retail business to analyze sales performance, customer behavior, and product demand. My key responsibilities included:
Data Extraction & Transformation: Collected data from multiple sources like SQL databases, Excel, and cloud storage. Cleaned and transformed the data using Power Query.
Data Modeling: Created relationships between Fact and Dimension tables and implemented Star Schema for optimized performance.
DAX Calculations: Developed complex DAX measures for KPIs like Total Sales, Profit Margins, and Year-over-Year Growth.
Report & Dashboard Design: Designed visually appealing and user-friendly dashboards with slicers, drill-throughs, and interactive visuals.
Performance Optimization: Used Import Mode for better speed and optimized DAX queries for efficiency.
Collaboration & Deployment: Published reports to Power BI Service, scheduled data refreshes, and shared insights with stakeholders.
EasyQ2. What are the transformations used in your project?
Removing Duplicates: Ensured unique records for accuracy.
Changing Data Types: Converted columns into appropriate formats (e.g., text to date, numbers to currency).
Splitting Columns: Used Split Column for separating full names into first and last names.
Merging Queries: Combined multiple datasets for a unified view.
Adding Custom Columns: Created calculated columns like Profit = Sales โ Cost.
Unpivoting Data: Converted wide-format data into a normalized structure for better analysis.
Example: While working on a sales dataset, I had to split the "Date Time" column into separate "Date" and "Time" fields for better filtering and analysis.
EasyQ3. What are the different sources you have used in your project?
I have worked with multiple data sources, including:
- SQL Server / MySQL / PostgreSQL / Snowflake: Extracting structured data using SQL queries.
- Excel / CSV Files: Handling offline data.
- SharePoint / OneDrive: Importing data stored on cloud platforms.
- REST APIs: Fetching real-time data from web services.
- Google Sheets: Integrating live data from Google Workspace.
- Azure / AWS / Google Cloud: Connecting to cloud databases and data lakes.
Example: In a financial project, I connected Power BI to an Azure SQL database and merged it with Excel-based budgeting data to create an interactive expense tracker.
Or you can create your own story based on your recent project.
EasyQ5. Difference between Star Schema and Snowflake Schema?
| Star schema | Snowflake schema |
|---|---|
| Dimensions are denormalized โ one table per dimension | Dimensions are normalized into sub-tables (Product โ Category โ Subcategory) |
| Fewer joins, faster query performance | More joins, slightly slower queries |
| Simpler to understand and maintain | Saves storage, but more complex |
| Preferred structure in Power BI | Used when dimension tables are very large |
EasyQ11. There is a report with five visuals and a slicer. If the slicer is changed, only two visuals should be affected; the remaining three should be unaffected. What are you going to do?
Select the slicer visual โ Go to the "Format" tab and click "Edit interactions" โ Set the desired interaction for each visual โ Exit the "Edit interactions" mode.
EasyQ12. There are 2 pages in a report. Page 1 has a Country slicer. If country is changed on page 1, page 2 should automatically be impacted too. How will you do it?
Select the country slicer โ Open the Sync Slicers pane from the View tab โ Check the Sync boxes for both pages (Page 1 and Page 2).
๐ก Medium โ 5 questions
MediumQ4. You have sales data from multiple regions stored in different tables (Sales, Products, Customers). How would you design a data model in Power BI for efficient reporting?
- Use a star schema design with a central fact table (Sales) and dimension tables (Products, Customers, Regions).
- Create relationships between the fact table and dimension tables using primary/foreign keys (e.g., Product ID, Customer ID).
- Ensure relationships are single-directional and avoid circular dependencies.
- Use DAX to create calculated columns or measures (e.g., Total Sales = SUM(Sales[Amount])).
Star Schema Implementation:
1. Fact Table (Sales):
- Contains all transactional data (sales records)
- Includes foreign keys to dimension tables
- Stores quantitative measures (sales amount, quantity, profit)
2. Dimension Tables:
- Products: Product ID, Name, Category, Subcategory, Price
- Customers: Customer ID, Name, Segment, Region, Contact
- Dates: Date ID, Full Date, Day, Month, Quarter, Year
- Regions: Region ID, Country, State, City, Postal Code
A star schema simplifies data modeling and improves query performance. Power BI's engine is optimized for this structure, enabling faster aggregations and filtering.
MediumQ9. Data Modeling Case: Sales data and customer data are in separate tables. How would you model this to analyze customer purchase behaviour?
Load the Data: Import the sales data and customer data tables into Power BI. Establish relationships: identify the CustomerID as the common key between the two tables. In the "Model" view, create a relationship by connecting the CustomerID column from the Sales Data table to the CustomerID column in the Customer Data table.
Data Structure: Sales Data Table contains columns like SaleID, CustomerID, ProductID, SaleDate, and Amount. Customer Data Table contains columns like CustomerID, CustomerName, Age, Gender, and Location.
Create Visualizations:
- Total Sales by Customer: a bar chart showing the total amount spent by each customer.
- Sales Over Time: a line chart displaying sales trends over time for each customer.
- Customer Demographics: pie charts or bar charts illustrating sales distribution by customer age, gender, and location.
Utilize DAX for Advanced Analysis: create measures using DAX (Data Analysis Expressions) to calculate total sales and sales by specific customer attributes for deeper insights. By following these steps, you can effectively model your data in Power BI to gain meaningful insights into customer purchase behaviour.
MediumQ13. Report consists of many visuals and some of the visuals are loading very slowly?
Systematic approach โ diagnose first, then fix the biggest offender:
- Performance Analyzer (View tab) โ refresh visuals โ sort by duration โ identify whether time goes to DAX query, visual display, or "other"
- Reduce data size: remove unused columns/tables, filter old history, lower cardinality (no unique IDs/timestamps in visuals)
- Optimize calculations: measures instead of calculated columns; avoid iterator-heavy DAX (SUMX over huge tables, nested FILTER) where a simple filter argument works
- Star schema: single-direction relationships, integer keys โ the engine is built for this shape
- Limit visuals: 5โ10 per page max (every visual = separate queries); replace visual-level filters with page filters; reduce interactions between unrelated visuals (Edit interactions)
Interview line: "I never guess โ Performance Analyzer tells me exactly which visual and which DAX query is slow, then I fix that specific bottleneck first."
MediumQ15. Imagine you need to visualize year-over-year growth in product sales. What approach would you take to calculate and present this effectively?
To visualize year-over-year growth in product sales, I would first calculate the sales for each product for the current year and the previous year using DAX measures in Power BI. Then, I would create a line chart visual where the x-axis represents the months or quarters, and the y-axis represents the sales amount. I would plot two lines on the chart, one for the current year's sales and one for the previous year's sales, allowing stakeholders to easily compare the growth trends over time.
MediumQ16. You're working with a dataset that requires extensive data cleaning and transformation before analysis. Describe your process for cleaning and preparing the data in Power BI.
For cleaning and preparing the dataset in Power BI, I would start by identifying and addressing missing or duplicate values, outliers, and inconsistencies in data formats. I would use Power Query Editor to perform data cleaning operations such as removing null values, renaming columns, and applying transformations like data type conversion and standardization. Additionally, I would create calculated columns or measures as needed to derive new insights from the cleaned data.
๐ด Hard / Advanced โ 7 questions
HardQ6. Your Power BI report is slow. What steps would you take to optimize its performance?
1. Data Model Optimization
Star Schema Design
- Central fact table (e.g., Sales) linked to dimension tables (e.g., Products, Customers).
- Ensures efficient filtering and reduces storage overhead.
Column & Row Reduction
- Remove unused columns (especially high-cardinality text fields).
- Filter out unnecessary historical data (e.g., keep only the last 3 years).
Relationship Optimization
- Use integer keys (not text) for joins (e.g., Product ID instead of Product Name).
- Set single-directional cross-filtering (dimension โ fact).
- Avoid bi-directional relationships unless absolutely necessary.
2. DAX & Calculation Optimization
- Measures > Calculated Columns โ measures compute at query time (dynamic); calculated columns consume memory.
- Replace
SUMX(withSUM(when possible for better performance. - Optimize time intelligence: use
TOTALYTD/DATESYTDinstead of manual date filtering; pre-calculate rolling metrics (e.g., Rolling 12M Sales) in the data source if possible. - Avoid expensive functions: replace nested
CALCULATEwithSUMMARIZEorADDCOLUMNS; useDISTINCTCOUNTsparingly โ consider pre-aggregating in SQL.
3. Data Source Optimization
- Query Folding (Power Query): ensure transformations (filters, joins) push back to the source (SQL, etc.). Use View Native Query to verify folding.
- Storage Mode Selection: Import Mode โ best for smallโmid datasets (fastest in-memory queries). DirectQuery โ for large/real-time data (but slower visuals). Hybrid โ aggregate tables in Import + details in DirectQuery.
- Incremental Refresh: for large fact tables, refresh only new data (e.g., WHERE Order Date >= TODAY() โ 30).
4. Report-Level Optimization
- Visual & page limits: max 5โ10 visuals per page (each visual runs separate queries). Use bookmarks or drill-throughs instead of overcrowding.
- Filter efficiency: apply page-level filters before visual-level filters; use slicers with "Single select" to reduce DAX overhead.
- Other tips: disable interactions between non-linked visuals; use static images/icons instead of shape visuals.
5. Advanced Techniques
- Aggregation tables: pre-summarize data (e.g., daily sales by region) for faster queries.
- Calculation groups (Tabular Editor): reuse measure logic (e.g., MTD/QTD/YTD) without DAX duplication.
- Performance Analyzer: use View โ Performance Analyzer to identify slow visuals/DAX.
Optimizing the data model, DAX, and report design ensures faster load times and better user experience.
HardQ7. You have a large dataset that updates daily. How would you implement incremental refresh in Power BI?
- In Power Query, partition the data using a date column (e.g. Order Date).
- In Power BI Desktop, enable Incremental Refresh in the dataset settings.
- Set parameters for
RangeStartandRangeEndto define the refresh window. - Configure the incremental refresh policy (e.g., keep 2 years of historical data and refresh the last 7 days daily).
Incremental refresh reduces the amount of data processed during each refresh, improving performance and reducing resource consumption.
HardQ8. A client wants to see the distribution of their customer base by age group and purchasing behaviour. How would you create a segmentation analysis with interactive filtering?
- Create an Age Band calculated column (e.g. 18โ25, 26โ35, 36โ50, 50+) or a separate segmentation table.
- Build measures for purchasing behaviour โ purchase frequency, average order value, total spend.
- Use a scatter chart (spend vs frequency, coloured by age band), bar charts by segment, and slicers for interactive filtering.
- Add drill-through to a customer-detail page for deeper insights on any segment.
HardQ10. How would you handle a situation where your Power BI report is performing slowly? What steps to diagnose and fix?
To handle a situation where a Power BI report is performing slowly, you can:
- Optimize your data model by removing unnecessary columns and tables.
- Use relationships and filtering carefully to minimize the amount of data processed.
- Avoid using complex DAX calculations in visuals; instead, create calculated columns or tables if needed.
- Use aggregate tables or pre-aggregated data to reduce the volume of data processed in visuals.
- Ensure that your data source is optimized for performance, such as indexing important columns or partitioning large tables.
- Use Power BI Performance Analyzer to identify and troubleshoot performance bottlenecks in your report.
Or, step by step:
- Check Data Volume: large datasets can slow down your report. Try to reduce the amount of data by filtering or aggregating it.
- Optimize Data Model: remove any unnecessary columns or tables. Use appropriate data types and relationships.
- Review DAX Calculations: simplify complex DAX formulas. Avoid using too many calculated columns or measures.
- Manage Visualizations: limit the number of visuals on a single report page. Use simpler visuals when possible.
- Reduce Query Load: use "Query Folding" to push operations back to the data source. Make sure your queries are efficient and optimized.
- Enable Performance Analyzer: in Power BI Desktop, go to "View" โ "Performance Analyzer." Run it to see which visuals or queries are taking the most time.
- Optimize Data Refresh: schedule refreshes during off-peak hours. Ensure incremental refresh is set up if possible.
- Improve Power BI Service Settings: ensure your Power BI workspace is in the correct region. Check for any limitations or restrictions on the service.
HardQ14. You are a data analyst for a global e-commerce company. You need to analyze marketing campaign performance across regions and identify campaigns with the highest ROI, plus how customer acquisition cost (CAC) varies by region and campaign. How would you build this report?
- Bring campaign spend, conversions and revenue data together; model campaigns, regions and dates as dimensions.
- Create DAX measures:
ROI = DIVIDE([Revenue] โ [Spend], [Spend])andCAC = DIVIDE([Spend], [New Customers]). - Build a matrix of campaign ร region with ROI and CAC, a map or bar chart for regional comparison, and trend lines over time.
- Add slicers for region/campaign/date and drill-through to campaign-level detail so stakeholders can find the highest-ROI campaigns instantly.
HardQ17. Your organization wants to incorporate real-time data updates into their Power BI reports. How would you set up and manage live data connections?
To incorporate real-time data updates into Power BI reports, I would utilize Power BI's streaming datasets feature. I would set up a data streaming connection to the source system, such as a database or API, and configure the dataset to receive real-time data updates at specified intervals. Then, I would design reports and visuals based on the streaming dataset, enabling stakeholders to view and analyze the latest data as it is updated in real-time.
HardQ18. How do you work with large datasets in Power BI?
When dealing with large datasets in Power BI, the primary challenge is the size of the data, which can affect performance, making the report slow to load and refresh. Managing and visualizing such a vast amount of data requires efficient handling to avoid timeouts and performance degradation.
One of the strategies I use is to upload a subset of the data into Power BI Desktop initially. For example, if I have data spanning five years, I might start by uploading only six months of data. This speeds up the development process on the desktop.
Next, I use the Power Query Editor to filter and aggregate data. This includes removing unnecessary columns, filtering rows to include only relevant data, and aggregating data at a higher level. For instance, if detailed transaction data is not necessary, I might aggregate daily sales data to monthly sales data before loading it into Power BI.
For extremely large datasets, I use DirectQuery mode, which allows Power BI to directly query the underlying data source without importing the data into the Power BI model. This keeps the Power BI model lightweight and leverages the processing power of the database server. However, this requires a well-optimized database and efficient query performance at the source. Sometimes, I use a combination of Import and DirectQuery modes, known as composite models. This approach allows for flexibility by importing critical, smaller tables into the Power BI model and using DirectQuery for larger fact tables.
I ensure that the data model is optimized by creating appropriate relationships and using measures efficiently. Reducing the complexity of DAX calculations and ensuring that the model only includes necessary tables and relationships helps maintain performance.
By employing these strategies, I can manage large datasets efficiently, ensuring that my Power BI reports are responsive and performant.
50 Real-Time Power BI interview questions
Questions asked in real interviews, covering Service, licensing, gateways, refresh and day-to-day work. ๐ Explore more โ click on this link (Medium) โ
EasyQ1. Which database did you use in your project and how do you connect it with Power BI?
Name what you actually used โ SQL Server, PostgreSQL, MySQL, Oracle, or cloud ones like Azure SQL / Amazon Redshift / Snowflake.
Connection: Home โ Get Data โ choose the connector โ enter server & database โ choose authentication (Windows/Database/OAuth) โ pick Import or DirectQuery โ select tables and Load/Transform.
EasyQ2. Did you use a cloud database / warehouse? How does it connect?
Example answer: "Yes โ Snowflake." Power BI has a native Snowflake connector: Get Data โ Snowflake โ server URL + warehouse name โ sign in. Other routes: dedicated connectors (BigQuery, Redshift, Databricks), ODBC drivers, or APIs when no native connector exists.
MediumQ3. What is Microsoft Fabric and how does it relate to Power BI?
Fabric is Microsoft's unified data platform that brings Power BI, Azure Data services and AI together โ one SaaS foundation (OneLake) for data engineering, warehousing, real-time analytics and BI. For Power BI users it means: data pipelines and dataflows managed in the same workspace, Direct Lake mode reading Delta/Parquet files at near-import speed, and datasets becoming shared "semantic models" across the org.
MediumQ4. What are Dataflows and how do you use them?
Dataflows are cloud-based Power Query โ reusable ETL that lives in the Power BI Service. You build them in a workspace (not in Desktop), connect to sources, clean/transform in the online Power Query editor, and schedule refreshes. Desktop reports then consume the dataflow's tables.
Why they matter: one team cleans the data once, many reports reuse it โ no duplicated transformation logic. Note: a dataflow is a collection of tables without relationships/measures; a dataset adds the model layer on top.
EasyQ5. What data cleaning/transformations do you do in Power Query?
- Remove duplicates โ select key columns โ Remove Rows โ Remove Duplicates
- Handle missing data โ Fill Down, Replace Values, or filter out nulls
- Fix data types โ dates read as text, numbers as text (Transform tab)
- Merge / split columns โ full name โ first + last; merge queries (joins)
- Filter & sort โ remove irrelevant rows early for performance
- Handle errors/outliers โ Remove Errors, Replace Errors, conditional logic
Best practices: every step is recorded (self-documenting), keep a cleaning checklist, create reusable custom functions in M, and validate totals against the source after cleaning.
EasyQ6. With scheduled refresh, do you have to re-do cleaning every time?
No. Power Query steps are saved with the dataset โ every scheduled refresh re-runs the entire recorded transformation pipeline automatically on the fresh data. You configure frequency/time slots in dataset Settings โ Scheduled refresh (a gateway is needed for on-premises sources).
MediumQ7. Some rows/categories are missing in a visual โ how do you tackle it?
Checklist: (1) In the field's dropdown enable "Show items with no data" and set numeric fields to the right summarization; (2) check visual/page/report filters that may exclude them; (3) check the relationship โ rows without a matching dimension key vanish in related visuals (fix keys or add an "Unknown" member); (4) verify the rows weren't filtered out in Power Query itself.
EasyQ8. You find duplicate rows in a table โ how do you solve it?
In Power Query: select the column(s) that define uniqueness โ Home โ Reduce Rows โ Remove Rows โ Remove Duplicates. Better: fix at source if possible, and find why duplicates arrived (bad join, repeated loads). To inspect first, use Keep Duplicates to see what will be removed. In DAX-land, DISTINCTCOUNT vs COUNT quickly reveals duplication.
MediumQ9. Import vs DirectQuery vs Live Connection โ differences and when to use each?


- Import: data loaded into memory (VertiPaq), fastest visuals, full DAX/Power Query โ the default for small-to-medium data that fits refresh cycles.
- DirectQuery: nothing imported; every interaction sends a query to the source โ near real-time and handles huge data, but slower visuals, limited transformations, source must be strong.
- Live Connection: connects to an existing model (SSAS / Power BI dataset) โ the model lives elsewhere; you only build visuals.
Rule: Import for speed, DirectQuery for size/freshness, Live for shared enterprise models. For large datasets, DirectQuery avoids the import size limit โ or use a composite model with aggregations for the best of both.
HardQ10. Can we add a calculated column in DirectQuery mode?
Yes โ simple row-level calculated columns are allowed in DirectQuery (they translate to SQL expressions), but with restrictions: many DAX functions (especially time-intelligence and functions needing the whole table in memory) aren't supported, and each column adds query cost. Best practice: push such columns to the source (view/warehouse) instead. With a live SSAS connection, the column must be created in the SSAS model and the database processed.
MediumQ11. Pro vs Premium licensing โ what's the difference?
- Pro (per user): create, publish and share content; sharing works with other Pro users. Dataset limit 1GB, 8 refreshes/day.
- Premium Per User (PPU): Pro + premium features (larger models 100GB, 48 refreshes/day, paginated reports, more compute) โ content shareable with other PPU users.
- Premium Capacity (per organization): dedicated capacity; content in Premium workspaces can be consumed by free-license users โ the standard choice for wide distribution in big companies.
HardQ12. How do you handle large datasets? What are the capacity limits?
Limits: Pro 1GB ยท PPU 100GB ยท Premium capacity up to 400GB (large dataset format) โ and columnar compression means that maps to terabytes of source data.
Strategies: remove unused/high-cardinality columns, aggregate at the needed grain, incremental refresh, DirectQuery for the overflow, composite models + aggregation tables (summary imported, detail on DirectQuery), and monitor memory in Desktop while developing.
MediumQ13. Calculated column vs Measure โ the classic question
Calculated column: computed row-by-row at refresh, stored in the model (uses RAM), lives in one table, evaluated in row context โ use for values you need to slice/filter by.
Measure: computed at query time based on the current filters, stored nowhere, belongs to the whole model, evaluated in filter context โ use for aggregations (sales, %, ratios).
Interview line: "Columns are facts about a row; measures are answers to questions." Default to measures โ they're lighter and dynamic.
MediumQ14โ15. What are parameters in Power Query and how do you use them?
Parameters are named, editable input values used inside queries โ server names, file paths, date ranges, thresholds.
Create: Power Query Editor โ Manage Parameters โ New (name, type, default). Use: reference the parameter in filters or the Source step (e.g. swap Dev/Prod servers, or RangeStart/RangeEnd for incremental refresh). In the Service, parameter values can be changed in dataset settings without editing the PBIX โ that's their real power.
EasyQ16. What is a slicer in Power BI?
A slicer is an on-canvas filter visual โ users click values (region, year, category) and every interacting visual on the page filters instantly. Variants: list, dropdown, date range, numeric range, hierarchy slicer. Slicers can be synced across pages (View โ Sync slicers). Difference from the Filters pane: slicers are visible, self-service filtering for report consumers.
EasyQ17. Types of filters in Power BI?
- Visual / Page / Report-level filters โ the Filters pane hierarchy
- Manual & auto filters โ user selections and fields auto-added to the pane
- Include/Exclude โ right-click data points to include or exclude them
- Drill-down filters โ navigating a hierarchy (Country โ State)
- Cross-filter / cross-highlight โ clicking one visual filters others
- Drillthrough filters โ carry context to a detail page
- URL filters โ pre-filter a Service report via query string
- RLS filters โ row-level security applied per user role
MediumQ18. Same data type but different column names โ can we create a relationship? And same names but different types?
Different names, same type: YES โ relationships work on values, not names (CustomerID โ Cust_Key is fine as long as values match).
Same names, different types: NO โ Power BI requires compatible data types on both sides; a text "101" won't relate to a numeric 101. Fix the type in Power Query first. Also remember: the "one" side should contain unique values.
MediumQ19. What is RLS and what are its types?
Row-Level Security restricts which rows a user can see.
Static RLS: fixed rule per role โ [Region] = "West"; simple but needs one role per value.
Dynamic RLS: one rule that adapts to the logged-in user โ [Email] = USERPRINCIPALNAME() against a user-mapping table; scales to thousands of users.
Setup: Modeling โ Manage Roles โ define rule โ test with View As โ publish โ assign members in the Service (dataset Security). RLS applies to Viewers, not workspace members/admins.
MediumQ20. What are bookmarks and drillthrough, and how do you use them?
Bookmark: a saved snapshot of a page's state (filters, slicers, visual visibility, sort). Combine with buttons + the Selection pane to build toggle views (chart โ table), pop-up filter panels, and story navigation. Create via View โ Bookmarks โ Add.
Drillthrough: right-click a data point (say, a customer) โ jump to a dedicated detail page automatically filtered to that customer. Setup: build the detail page, drag the field into "Drill through" in the Visualizations pane; a back button is added automatically.
HardQ21. What is incremental refresh and how do you apply it?
Incremental refresh refreshes only new/changed partitions instead of the whole table โ hours become minutes.
- In Power Query create datetime parameters RangeStart and RangeEnd (exact names).
- Filter the fact table's date column between them.
- Right-click the table โ Incremental refresh โ policy, e.g. "archive 5 years, refresh last 7 days".
- Publish โ the Service manages partitions on each refresh.
Works best when the source supports query folding.
HardQ22. What is query folding?
Query folding = Power Query translating your transformation steps into the source's native query (SQL), so filtering/joining happens in the database instead of on your machine. Millions of rows filtered at source vs downloaded then filtered โ huge performance difference, and mandatory for efficient incremental refresh.
Check: right-click a step โ "View Native Query" (enabled = folding). Steps like custom M functions or index columns break folding โ do foldable steps first.
EasyQ23. What is scheduled refresh and how do you set it up?
Automatic dataset refresh in the Service: dataset โ Settings โ Scheduled refresh โ frequency (daily/weekly), time slots, timezone, failure notifications. On-premises sources need the On-premises Data Gateway configured with stored credentials. Limits: 8 refreshes/day (Pro), 48 (Premium/PPU).
EasyQ24. What are alerts in Power BI?
Data alerts notify you when a number crosses a threshold. They work on dashboard tiles of cards, gauges and KPIs: open the tile menu (โฆ) โ Manage alerts โ set condition (above/below X) โ Power BI sends a notification/email when triggered. Great for "tell me when sales drop below target" without opening the report.
EasyQ25. What is a subscription in Power BI?
Subscriptions email you (or others) a snapshot of a report/dashboard on a schedule โ daily/weekly/monthly, or on data refresh. Setup: open the report in the Service โ Subscribe โ choose page, recipients, schedule. Alerts fire on thresholds; subscriptions fire on schedule โ a common comparison question.
HardQ26. What is the XMLA endpoint?
The XMLA endpoint exposes Premium/PPU datasets as full Analysis Services models, so pro tools can connect directly: SSMS (manage/query with DAX), Tabular Editor (advanced modeling, calculation groups), DAX Studio (performance tuning), and ALM Toolkit (deployments). Read/Write mode turns Power BI into an enterprise semantic-model platform beyond what Desktop offers.
MediumQ27. What is a gateway and what are its types?
The On-premises Data Gateway is the secure bridge between the Power BI cloud service and data inside your network โ required for scheduled refresh/DirectQuery against on-prem sources.
- Standard mode: installed on a server, shared by many users and multiple services (Power BI, Power Apps, Power Automate) โ the enterprise choice.
- Personal mode: single-user, Power BI refresh only, can't be shared โ fine for individual use.
- (VNet gateway exists for Azure virtual networks โ managed, no installation.)
HardQ28. How is the REST API used with Power BI?
The Power BI REST API lets developers automate and integrate: embed reports/dashboards in custom apps, trigger dataset refreshes programmatically, create/clone workspaces and reports, push data into streaming datasets, and pull audit/activity data. Auth is via Azure AD (service principal or user token). Typical analyst mention: "we trigger refresh from our ETL pipeline via the API once data lands."
MediumQ29. What is Power BI Embedded and how do you share reports with clients?
Embedded puts Power BI visuals inside your own application โ customers use your app, not powerbi.com; auth is handled with embed tokens ("app owns data"). Capacity is bought as Azure A-SKUs.
Sharing with clients otherwise: publish an app (cleanest), direct share, or Publish to web (public link โ only for non-confidential data). External users can be invited via Azure AD B2B guest access.
HardQ30. What is a deployment pipeline?
A Premium feature giving you Dev โ Test โ Production stages for workspaces: develop in Dev, deploy content forward with one click, compare stages, and use deployment rules to auto-swap data sources/parameters per stage (Dev DB in Dev, Prod DB in Prod). It's application-lifecycle-management for BI โ no more manually republishing PBIX files to the prod workspace.
MediumQ31. How do you optimize a dashboard and dataset?
Dataset: star schema, remove unused & high-cardinality columns, integer keys, measures over calculated columns, incremental refresh, aggregations, ensure query folding.
Report: 5โ8 visuals per page, page/report filters instead of visual-heavy filtering, reduce interactions between visuals, avoid huge tables, limit slicers with "Only relevant values".
Process: measure first with Performance Analyzer, fix the top offender, re-measure.
MediumQ32. How do you use Performance Analyzer?
View โ Performance Analyzer โ Start recording โ interact/refresh visuals. Each visual shows time split into DAX query (slow = fix measures/model), visual display (slow = too many data points), and other (slow = too many visuals waiting on each other). Copy the DAX query into DAX Studio for deeper tuning. Golden rule: optimize the slowest visual first.
MediumQ33. What day-to-day challenges do you face and how do you tackle them?
Give 2โ3 real ones with fixes:
- Changing requirements: lock KPI definitions in writing before building; use a change log.
- Data quality surprises: validation checks in Power Query + reconciliation against source totals before publishing.
- Slow reports: Performance Analyzer diagnosis โ model slimming โ aggregations.
- Refresh failures: gateway monitoring, credential rotation calendar, failure alerts to email.
EasyQ34. Which delivery model do you work in โ Waterfall or Agile?
Most BI teams: Agile (Scrum) โ 2-week sprints, dashboards delivered iteratively, feedback each sprint review. Answer with your reality and one concrete detail: "We work in 2-week sprints with a Jira board; a dashboard ships as MVP in sprint 1, then refined from stakeholder feedback." Mention you can operate in either.
MediumQ35. Which DAX functions do you use in your dashboards?
Group them when answering:
- Aggregation/iterators: SUM, SUMX, AVERAGEX, DISTINCTCOUNT
- Context control: CALCULATE, FILTER, ALL, ALLSELECTED, ALLEXCEPT
- Relationships: RELATED, RELATEDTABLE, USERELATIONSHIP, LOOKUPVALUE
- Time intelligence: TOTALYTD/QTD/MTD, SAMEPERIODLASTYEAR, DATEADD, DATESBETWEEN, CALENDAR
- Logic/variables: VAR/RETURN, SWITCH, IF, DIVIDE
- Grouping/running totals: SUMMARIZE, GROUPBY, and the CALCULATE+FILTER(ALLSELECTEDโฆ) running-total pattern
MediumQ36. How do you QC that your KPI outcomes are accurate?
- Understand the KPI definition โ formula and business intent agreed in writing.
- Cross-check with raw data โ recompute in SQL/Excel and match the dashboard number.
- Validate sources & ETL โ data current, pipeline ran, row counts sane.
- Test edge cases โ nulls, returns/negatives, month boundaries, timezone issues.
- Benchmark โ compare against history and known reports; investigate deviations.
- Check filters/RLS โ confirm the number under different slicer states and roles.
- Stakeholder sign-off โ business validates before wide release; keep a QC log.
EasyQ37. How do you choose visuals while creating a dashboard?
Match the visual to the question:
- Trend over time โ line/area ยท Compare categories โ bar/column
- Part of whole โ stacked bar, donut (few categories only)
- Single KPI โ card/KPI/gauge ยท Relationship โ scatter
- Two dims + measure โ matrix/heatmap ยท Geo โ map ยท Flow/contribution โ waterfall/funnel
Principles: KPIs top-left (eyes go there first), max 5โ8 visuals, consistent colors, no pie charts with 10 slices, every visual must answer a business question.
MediumQ38. Import vs DirectQuery vs Live โ which is best?
No absolute winner โ it's a trade-off triangle: Import wins on speed and features, DirectQuery wins on data size and freshness, Live wins when a governed enterprise model already exists. Interview-safe answer: "Import by default; DirectQuery when data is too large or must be real-time; Live when the company has central SSAS/shared datasets; composite models when I need both."
MediumQ39. Client wants YoY growth for product sales โ how do you design it?
Measures:
Sales LY = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))
YoY % = DIVIDE([Total Sales] - [Sales LY], [Sales LY])
Design: KPI cards on top (This Year, Last Year, YoY% with conditional color), a line chart of both years by month, a bar/matrix by product with YoY% conditional formatting (green/red), year & product slicers, and drillthrough to a product detail page. Requires a proper marked Date table.
MediumQ40. Can we create two active relationships between two tables?
No. Only ONE relationship between the same two tables can be active; the rest stay inactive (dotted lines). Activate an inactive one per-calculation with USERELATIONSHIP() inside CALCULATE โ the classic case being Order Date (active) vs Ship Date (inactive) to one Date table.
HardQ41. Define bidirectional cross-filtering
A relationship's cross-filter direction set to Both โ filters flow dimensionโfact AND factโdimension. Useful for many-to-many bridges and making one dimension's slicer reduce another dimension's list. Dangers: ambiguity in the model and slower queries โ best practice keeps Single direction by default and uses Both surgically (or CROSSFILTER() in a specific measure).
MediumQ42. (Gateways revisited) When is a gateway NOT needed?
No gateway needed for pure-cloud sources (Azure SQL, Snowflake, SharePoint Online, web APIs) โ the Service reaches them directly. Gateway required whenever the source lives on-premises/behind a firewall, for both scheduled refresh (Import) and DirectQuery/Live connections.
HardQ43. Is it possible to create a calculated column in DirectQuery mode?
Yes, with limits โ the DAX must translate to the source's SQL, so only row-scope expressions work (no time-intelligence, no cross-table magic beyond RELATED). Each such column adds runtime cost on every query. Best practice: create it in the source view/warehouse instead, or switch that table to Import/dual in a composite model.
MediumQ44. Difference between duplicating and referencing a query in Power Query?
Duplicate: a full independent copy of the query and all steps โ changing the original does NOT affect the copy.
Reference: a new query whose Source = the output of the original โ it inherits every change in the original; used to build layered pipelines (raw โ cleaned โ dimension/fact splits). Note: referencing doesn't reuse computation; the chain re-evaluates unless staged via dataflows.
EasyQ45. What are Merge and Append in Power Query?
Merge = SQL JOIN โ combine columns of two tables on a key (Sales + Customer details via CustomerID; choose join kind: left, inner, fullโฆ).
Append = SQL UNION ALL โ stack rows of same-structured tables (Q1 sales + Q2 sales into one table). Merge widens, Append lengthens.
MediumQ46. How do you optimize the performance of a Power BI report?
- Prefer Import mode; use aggregations for big data.
- Slim the model โ drop unused columns, avoid high-cardinality fields, star schema.
- Filter at the source; ensure query folding.
- Efficient DAX โ variables, DIVIDE, avoid row-by-row FILTER when a simple predicate works.
- Fewer visuals per page; reduce visual interactions.
- Diagnose with Performance Analyzer and fix the top offender first.
HardQ47. What is Power Query M language and when do you use it?
M is the functional language behind every Power Query step (see it in the Advanced Editor). The UI writes M for you; you write M directly for things the UI can't do: custom functions applied across files, dynamic column logic, conditional source paths, advanced text/list operations. Example: a custom function that cleans 30 monthly files identically. M โ DAX: M shapes data before load; DAX calculates after load.
EasyQ48. How do you use themes and custom visuals?
Themes: View โ Themes โ apply built-in ones or a custom JSON theme file defining brand colors, fonts and visual defaults, giving every report a consistent corporate look instantly.
Custom visuals: import from AppSource (certified ones preferred) or build with the pbiviz SDK/D3.js. Use cases: bullet charts, Gantt, advanced KPIs the default set lacks โ but limit them; too many custom visuals hurt performance and governance.
MediumQ49. Power BI Desktop vs Power BI Report Server?
Desktop: the free authoring tool โ build models and reports locally, then publish.
Report Server: an on-premises hosting platform for organizations that can't use the cloud (compliance/regulatory) โ reports stay on the company's own servers. It needs a special Desktop version (optimized for RS), trails cloud features (no dashboards, limited AI visuals), and comes via Premium or SQL Server EE licensing.
EasyQ50. What are Power BI templates (.PBIT) and how do you use them?
A .PBIT file saves the report's structure without data โ data model, queries, measures, visuals, theme. Share it and a colleague opens it, supplies parameter values/credentials, and gets the same report on their data. Perfect for standardized monthly reports and multi-client setups. Create via File โ Export โ Power BI template.
HardQ51. Advanced DAX functions you've used and how they help performance?
- CALCULATE โ the engine of context manipulation; precise filters beat giant table scans.
- VAR/RETURN โ compute once, reuse; the single biggest DAX performance habit.
- SUMX/iterators โ row-wise math; keep the iterated table small.
- FILTER โ powerful but costly; replace with boolean predicates in CALCULATE where possible.
- ALL/ALLSELECTED/ALLEXCEPT โ totals and %-of patterns without extra queries.
- KEEPFILTERS, TREATAS, USERELATIONSHIP โ surgical context control instead of model rework.
MediumQ52. How do you configure a data gateway for on-premises sources?
- Download & install the On-premises Data Gateway on an always-on server (not a laptop).
- Sign in with the org account and register the gateway.
- In the Service: Settings โ Manage gateways โ add data sources (SQL Server, file sharesโฆ) with stored credentials.
- Grant users permission to use each data source.
- In dataset settings, map the dataset to the gateway โ scheduled refresh/DirectQuery now works.
Tips: cluster two gateways for high availability; keep it updated monthly.
EasyQ55. Can two tables have more than one ACTIVE relationship?
No โ one active relationship maximum between any two tables (solid line); additional ones are inactive (dotted). Use USERELATIONSHIP in CALCULATE to invoke an inactive one for a specific measure.
MediumQ56. What are Content Packs (and their modern replacement)?
Content packs were bundles of dashboards, reports and datasets shared across an organization (service-provider packs like Google Analytics, and user-created packs). They're deprecated โ replaced by Power BI Apps, which do the same job better: a workspace publishes an app; consumers get a read-only, updateable package. In interviews, mention the replacement โ it shows current knowledge.
Tableau interview questions
140+ Tableau developer questions with detailed answers โ components, filters, blending, LODs, performance and Tableau Server โ organised by difficulty.
๐ข Easy โ 46 questions
EasyQ1. What are the Tableau components?
- Tableau Desktop: The primary application for creating and developing interactive visualizations, dashboards, and stories.
- Tableau Server: A platform for publishing and sharing interactive dashboards and workbooks with a wider audience within an organization. It enables collaboration, data governance, and scheduled refreshes.
- Tableau Online: A cloud-based version of Tableau Server, hosted and managed by Tableau. It offers similar functionalities to Tableau Server but eliminates the need for on-premises infrastructure.
- Tableau Reader: A free application that allows users to view and interact with dashboards and workbooks created in Tableau Desktop or published to Tableau Server/Online. It cannot edit or create new visualizations.
- Tableau Public: A free cloud-based platform for creating and sharing interactive visualizations with the public.
EasyQ2. What is Tableau Desktop?
Tableau Desktop is the core application for creating and developing interactive visualizations, dashboards, and stories. It allows users to connect to various data sources, create a wide range of visualizations, build interactive dashboards, and develop stories to guide users through a series of visualizations.
EasyQ3. What is Tableau Server?
Tableau Server is a platform for publishing and sharing interactive dashboards and workbooks with a wider audience within an organization. It enables collaboration, data governance, and scheduled refreshes. Tableau Server can be deployed on-premises or as a cloud-based service (Tableau Online).
EasyQ4. What is Tableau Online?
Tableau Online is a cloud-based version of Tableau Server, hosted and managed by Tableau. It offers similar functionalities to Tableau Server but eliminates the need for on-premises infrastructure, making it easier to deploy and manage.
EasyQ5. What is Tableau Reader?
Tableau Reader is a free application that allows users to view and interact with dashboards and workbooks created in Tableau Desktop or published to Tableau Server/Online. It cannot edit or create new visualizations, making it ideal for users who only need to view and consume data visualizations.
EasyQ6. Difference between Tableau Desktop and Server?
| Tableau Desktop | Tableau Server |
|---|---|
| Authoring tool โ create and develop visualizations, dashboards, stories | Sharing platform โ publish, distribute and govern content |
| Installed on the analyst's machine | Deployed on company infrastructure (or cloud) |
| Connects to data and builds workbooks | Handles permissions, scheduled refreshes, collaboration |
EasyQ7. What databases are currently used in projects?
The choice of database depends on the specific project requirements and the nature of the data. Some commonly used databases include:
- Relational Databases: SQL Server, Oracle, MySQL, PostgreSQL
- Data Warehouses: Snowflake, Amazon Redshift, Google BigQuery
- Cloud Databases: AWS RDS, Azure SQL Database, Google Cloud SQL
- Other: Excel, CSV files, JSON, etc.
EasyQ8. What is the SQL / Oracle database connection process in Tableau?
Establish Connection:
- Open Tableau Desktop.
- Go to "Connect" โ "To Server" โ "Moreโฆ"
- Select the appropriate database driver (e.g., "SQL Server," "Oracle").
- Enter the server name, database name, and credentials.
Connect and Explore:
- Test the connection to ensure it's successful.
- Browse available tables and views within the database.
- Drag and drop fields onto the canvas to create visualizations.
EasyQ9. What are the connection types? (Live & Extract)
- Live Connection: Connects directly to the live data source, providing real-time data updates but requiring the data source to be available and accessible.
- Extract: Creates a local copy of the data, offering faster performance for large datasets but requiring manual refreshes for data updates.
EasyQ10. How do you load (import) the database into Tableau?
- Connect: Establish a connection to the data source.
- Select Data: Choose the tables or views you want to analyze.
- Create Extract (Optional): If necessary, create an extract for improved performance.
- Start Analysis: Begin exploring and visualizing the data.
EasyQ13. Difference between TWB and TWBX?
- TWB: Tableau Workbook file containing the workbook definition and connections to external data sources.
- TWBX: Packaged Tableau Workbook file that includes the workbook definition and the underlying data itself, making it easier to share and distribute.
EasyQ14. Which file type is used when working with Tableau Reader?
TWBX files are used with Tableau Reader.
EasyQ18. Difference between Bar chart and Pie chart?
- Bar Chart: Compares values across different categories, useful for showing trends, distributions, and comparisons.
- Pie Chart: Shows the proportion of each category to the whole, best for visualizing parts of a whole.
EasyQ19. Explain Heat Map and Dual Axis
- Heat Map: Uses color to represent the intensity of data values across a matrix, helping to identify patterns, trends, and anomalies in data.
- Dual Axis: Allows you to plot two different measures on the same chart using separate axes, enabling comparisons of related measures with different scales.
EasyQ22. What are Dimensions and Facts?
In Tableau, dimensions and facts are fundamental concepts used for data analysis and visualization.
Dimensions: These are descriptive attributes that categorize your data. They act like labels on chart axes, helping you understand the context of your measures. Examples: customer name, product category, region, date (year, quarter, month), employee department.
Facts: These are quantitative measures associated with your dimensions. They represent the numerical values you want to analyze and visualize. Examples: sales amount, units sold, profit margin, customer lifetime value, number of website visits.
Think of dimensions as providing the "who, what, when, and where" of your data, while facts represent the "how much" or "how many." By combining dimensions and facts in Tableau, you can create insightful visualizations that reveal patterns and trends in your data.
EasyQ25. What types of data sources have you used to create reports and dashboards?
- Relational Databases (RDBMS): SQL Server, Oracle, MySQL, PostgreSQL (common for storing business data)
- Spreadsheets: Excel, CSV (often used for smaller datasets or initial data exploration)
- Cloud Data Sources: Salesforce, Google Analytics, social media APIs (provide access to web application or platform data)
- Flat Files: Text files, JSON (can be used for specific data formats or custom data feeds)
EasyQ26โ27. Have you created dashboards from a data warehouse? Which RDBMS have you worked with?
Answer honestly based on your experience. If yes, briefly mention the benefits of using a data warehouse: a centralized, integrated data source optimized for analytics. Then list the specific RDBMS you're familiar with (e.g., SQL Server, Oracle, MySQL).
EasyQ28. What is PK, FK and a composite key?
Primary Key (PK): A unique identifier for a table row. Each row must have a distinct PK value, ensuring no duplicate records exist.
Foreign Key (FK): A column that references the PK of another table. This creates a relationship between tables, helping to maintain data consistency.
Composite Key: A combination of two or more columns that uniquely identifies a row in a table. It's used when a single column cannot guarantee uniqueness.
EasyQ41. What are the dimensions and facts?
Dimensions are descriptive attributes that categorize data (customer name, product category, region, date) โ the who/what/when/where. Facts (measures) are the quantitative values you analyze (sales amount, units sold, profit) โ the how much/how many. Combined, they answer questions like "sales by region by month."
EasyQ42. What type of data sources did you work on while creating dashboards?
Relational databases (SQL Server, MySQL, PostgreSQL), spreadsheets (Excel/CSV), cloud sources (Google Sheets, Salesforce, Google Analytics), and flat files (JSON, text). Mention only the ones you can defend with follow-up answers.
EasyQ43. Did you create dashboards from a data warehouse as a source?
If yes: "Yes โ we used [Snowflake/Redshift/SQL Server DW] as a centralized, integrated source optimized for analytics; I connected to fact and dimension tables and mostly used extracts on top for dashboard speed." If no, say you've worked with the same star-schema concepts on regular databases.
EasyQ57. How many charts are there in Tableau and how many have you created?
Show Me offers 24 chart types; beyond that customs like waterfall, donut, funnel, Pareto are built manually. Safe answer: name 8โ10 you genuinely use (bar, line, area, pie/donut, scatter, map, heat map, treemap, Gantt, bullet) and one custom chart you can explain step by step.
EasyQ1. What are the different types of filters in Tableau? Purpose of each filter?
In order of execution: Extract filters (limit data while creating an extract), Data source filters (restrict data at connection level for all sheets), Context filters (create a temporary subset that other filters run on), Dimension filters (filter categorical values), Measure filters (filter on aggregated values), and Table calculation filters (applied last, after calculations, so they hide marks without changing underlying results).
EasyQ2. What is the order of execution of filters in Tableau?
Extract filters โ Data source filters โ Context filters โ Filters on dimensions โ Filters on measures โ Table calculation filters. Memorize this sequence โ it is one of the most repeated Tableau interview questions.
EasyQ6. How to create a cascading filter (Region โ Country)?
Add both filters to the view โ on the Country filter dropdown choose "Only relevant values". Now selecting a region limits the country list to that region's countries. For performance on big data, make Region a context filter as well.
EasyQ12. Difference between Quick filter and Normal filter?
They are the same filter underneath โ a quick filter is just the interactive filter card shown on the view/dashboard so end users can change values, while a "normal" filter sits on the Filters shelf, set by the author. Note: many visible quick filters (especially "Only relevant values") slow dashboards because each renders its own query.
EasyQ18. What is meant by extract and how do you take an extract?
An extract is a compressed snapshot of your data stored in Tableau's fast in-memory format (.hyper). To create: on the Data Source page select Extract (instead of Live) โ optionally add extract filters/aggregation โ click the sheet and save the extract file. Extracts make dashboards faster and work offline.
EasyQ19. Where does the extract file get saved on the system?
By default in the My Tableau Repository โ Datasources folder of your user documents (as a .hyper file). When you save a .twbx packaged workbook, the extract is bundled inside the package.
EasyQ20. What is the difference between Live and Extract connection?
Live: queries the source database in real time โ always fresh, but speed depends on the database. Extract: a local snapshot in Tableau's engine โ much faster for dashboards, works offline, but shows data only as of the last refresh.
EasyQ21. Live or Extract โ which performs better and when would you choose each?
Extract usually performs better because Tableau's Hyper engine is optimized for analytics. Choose Live when data must be real-time (stock levels, operations monitoring) or the database is a fast warehouse; choose Extract for typical reporting, big aggregations, slow sources, or offline sharing.
EasyQ22. How to schedule an extract in Tableau?
Publish the workbook/data source with embedded credentials โ on Tableau Server/Cloud open it โ Scheduled Tasks / Refresh Schedules โ Add a schedule (e.g. daily 6 AM). The Backgrounder process runs the refresh automatically.
EasyQ26. Can we join Excel and another data source together in Tableau?
Yes โ via cross-database joins: in the same data source click Add โ connect Excel and the database โ drag both tables to the canvas and define the join. If a direct join isn't possible, use data blending instead.
EasyQ32. How many charts are there in Tableau?
The Show Me panel offers 24 chart types (bar, line, area, pie, map, scatter, treemap, bullet, box-and-whisker, Gantt, histogram, heat map, highlight table, etc.). Beyond Show Me you can build custom charts โ waterfall, donut, funnel, Pareto, Sankey โ using dual axes and calculations.
EasyQ35. What is the use of a scatter plot? When do you use it?
A scatter plot shows the relationship between two numeric measures โ each mark is one entity. Use it to spot correlation, clusters and outliers, e.g. discount vs profit by sub-category to see where heavy discounting kills margin. Add trend lines to quantify the relationship.
EasyQ38. What is the difference between discrete and continuous fields?
Discrete (blue): distinct labels/headers โ creates separate panes/headers (e.g. Year as a label). Continuous (green): unbroken range โ creates an axis (e.g. Sales axis, exact date axis). The same field can often be used either way; it changes how Tableau draws the view.
EasyQ1. What is Tableau Server?
A platform for publishing and sharing interactive dashboards within an organization โ it handles user access, permissions, scheduled refreshes, collaboration and governance. Deployed on company infrastructure (or use Tableau Cloud as the hosted version).
EasyQ2. Difference between Tableau Server and Tableau Online (Cloud)?
Server: installed and managed on your own infrastructure โ full control, works inside private networks, you handle upgrades and backups. Online/Cloud: SaaS hosted by Tableau โ no infrastructure to manage, faster to start, accessible anywhere.
EasyQ3. How to publish a workbook to Tableau Server?
In Tableau Desktop: Server โ Publish Workbook โ sign in โ choose the project โ set the name, tags, permissions, refresh schedule and credentials โ Publish. The workbook is then available in the browser to permitted users.
EasyQ4. What is a project in Tableau Server?
A project is a folder on the server that organizes workbooks and data sources and is the main unit for permissions โ e.g. a "Finance" project where only the finance group has access. Projects can contain sub-projects for finer structure.
EasyQ6. How do you give permissions to a workbook to a user?
Open the workbook on the server โ Permissions โ add the user or group โ choose a template (View, Explore, Publish, Administer) or set capabilities individually (view, filter, download, web edit, delete). Best practice: assign permissions to groups at the project level, not per user per workbook.
EasyQ18. Is it possible to do development in Tableau Server?
Yes, limited development via web authoring (web edit) โ create and edit workbooks in the browser against published data sources. Full-featured development (complex joins, some advanced features) still happens in Tableau Desktop.
EasyQ19. What does the Edit option for a workbook on the server do?
It opens the workbook in web authoring mode โ the user can modify sheets, add calculations and save (or Save As) directly in the browser, without needing Tableau Desktop, if their role and permissions allow web edit.
EasyQ20. Difference between doing development on Server vs Desktop?
Desktop: full feature set โ all connectors, complex data prep, extracts, faster iteration offline. Server web edit: convenient, no install, works on published sources, but limited data-source editing and some features missing. Typical flow: build in Desktop โ publish โ tweak on Server.
EasyQ21. Can we publish data sources to Tableau Server?
Yes โ Server โ Publish Data Source. A published (and certified) data source becomes a single governed source of truth: many workbooks connect to it, refreshes are scheduled once, and calculations/aliases are shared.
EasyQ27. What platforms can Tableau Server run on?
Windows Server and Linux (RHEL, CentOS/Rocky, Ubuntu, Amazon Linux), on-premises or on cloud VMs (AWS, Azure, GCP). Tableau Cloud is the option with no OS to manage at all.
EasyQ30. How to handle giving permissions to multiple users?
Create groups (or sync from Active Directory) โ assign permissions to groups at the project level โ lock content permissions to the project. New users just get added to a group and inherit everything โ never manage permissions user by user.
๐ก Medium โ 61 questions
MediumQ11. What is custom SQL usage? Can you work with parameters?
Custom SQL allows you to write your own SQL queries to extract specific data from the database. You can integrate parameters into your custom SQL queries to allow users to filter data dynamically.
MediumQ12. Difference between VizQL and Custom SQL?
- VizQL: Tableau's own visual query language โ automatically generated when you drag and drop fields; it translates your visual actions into optimized queries.
- Custom SQL: hand-written SQL you provide at the data-source level to shape exactly what data enters Tableau, useful for complex joins/derivations the drag-and-drop interface can't express.
MediumQ15. What is TDE and how does it improve performance?
TDE (Tableau Data Extract) is a proprietary file format specifically designed for Tableau. It improves performance by optimizing data storage and retrieval, and allows for extracting only the necessary data for analysis. (Newer versions use the .hyper format.)
MediumQ16. Ways to increase the performance of a dashboard/workbook/database?
- Data Extraction: Create extracts for faster performance, especially with large datasets.
- Data Subsetting: Extract only the necessary data to reduce the size of the extract.
- Data Aggregation: Aggregate data at the source level to reduce the amount of data transferred.
- Optimize Visualizations: Use efficient visualization types and avoid overly complex calculations.
- Server Optimization: Tune server settings for optimal performance (if using Tableau Server).
- Data Source Optimization: Ensure the data source is well-indexed and optimized for querying.
MediumQ17. How do you check performance recordings in Tableau Desktop?
Enable performance recording in Tableau Desktop (Help โ Settings and Performance โ Start Performance Recording) and analyze the recorded information to identify performance bottlenecks.
MediumQ20. Example for Dual Axis and when to use synchronized axes?
- Example: Plot sales and profit on the same chart.
- Synchronized Axes: Useful when comparing two related measures with different scales, ensuring that the axes are aligned and move together.
MediumQ21. What is a Waterfall chart, and blended vs individual axes?
- Waterfall Chart: Visualizes how an initial value is affected by a series of positive and negative increments.
- Blended Axes: Combine data from different sources on a single axis.
- Individual Axes: Use separate axes for each data source.
MediumQ23. Can you describe a complex dashboard you've created or worked on?
Yes, sure โ I once built a dashboard for a retail company that monitored key performance indicators (KPIs) across various departments and sales channels. It was intricate because it involved:
- Multiple Data Sources: It combined data from sales transactions, customer relationship management (CRM), and inventory management systems.
- Complex Calculations: I created calculated fields to derive metrics like average order value, customer lifetime value, and inventory turnover.
- Interactive Features: The dashboard included filters, drill-downs, and parameter controls to allow users to explore the data by specific product categories, regions, or timeframes.
- Advanced Visualizations: I used a combination of charts (bar charts, line charts, heatmaps) and maps to present the data in an informative and visually appealing way.
MediumQ24. Why is it complicated? (follow-up to your dashboard answer)
Possible reasons for complexity:
- Multiple data sources requiring data blending and transformation.
- Incorporating complex calculations and custom formulas.
- Designing interactive elements for user exploration and analysis.
- Combining various chart types to effectively represent different data aspects.
MediumQ30. Can I be notified immediately when my extract fails (or succeeds)?
Tableau Server can send email notifications for extract refresh failures or successes. You can configure this in the Settings โ Jobs โ Email Notifications section. Or you can use the Tableau API with Python integration to send a message on your phone.
MediumQ32. What calculations (or fields) are in my Tableau workbooks? How do I grab the actual formula being used?
In Tableau Desktop, open the workbook and go to the Data pane. Click on the dropdown arrow next to the field name and select Show Formula (or Edit). This will display the formula used to create the calculated field.
MediumQ38. How can I find out what users/groups have what permissions on my workbooks?
You can view user and group permissions on workbooks through the Tableau Server web interface:
- Log in to Tableau Server as an administrator.
- Navigate to the specific workbook.
- Click on the Share icon (or Permissions).
- In the permissions section, you'll see a list of users and groups with their assigned permissions (View, Edit, etc.) for that workbook.
MediumQ44. How can I archive valuable workbooks and have version control?
Tableau Server keeps revision history (restore previous versions from the workbook's menu). For true archiving: download .twbx snapshots on a schedule (tabcmd/REST API) to a versioned store like Git or S3.
MediumQ45. How can I be notified immediately when my extract fails or succeeds?
Enable email notifications: Settings โ Jobs โ Email Notifications on Tableau Server, or account settings โ "extract refresh failure" emails. For richer alerting, poll job status via the REST API and push to Slack/phone with a small Python script.
MediumQ47. What calculations are in my workbooks and how do I grab the formula?
In Desktop: right-click the calculated field in the Data pane โ Edit to see the formula. For an inventory across many workbooks, tools that parse the workbook XML (a .twb is XML) can list every calculation automatically.
MediumQ51. How do I add a maintenance message to notify users of a server restart/upgrade?
Use the server's sign-in customization / welcome banner (Site Settings) for a notice, or send a broadcast email to all users via groups. Larger orgs put a banner via custom portal pages where dashboards are embedded.
MediumQ52. Can a parameter be used inside another parameter?
No โ a parameter is a standalone scalar input; parameters can't reference other parameters directly. You combine them inside a calculated field instead (e.g. one calc using two parameters), which achieves the same effect.
MediumQ53. Can we use groups in calculated fields?
Yes โ a group appears as a field and can be referenced in calculations, e.g. IF [Region Group] = "North Zone" THEN .... (In very old versions this was limited; modern Tableau supports it.)
MediumQ54. Can we group multiple dimensions using groups?
A group is built on one dimension's members. To group across multiple dimensions, first create a combined field (select both dimensions โ Create โ Combined Field) and group that, or use a calculated field / set with a multi-condition formula.
MediumQ55. How many types of extensions are there in Tableau and how are they used?
Main file types: .twb (workbook), .twbx (packaged workbook), .hyper/.tde (extract), .tds/.tdsx (data source / packaged), .tbm (bookmark), .tps (preferences/color palettes), .tfl/.tflx (Prep flows). Also dashboard extensions โ web add-ins (.trex) that add functionality like write-back inside dashboards.
MediumQ56. Live-connection dashboard published to server โ how does the server stay connected to the database?
The published workbook stores the connection details with embedded credentials. Every time a user opens or interacts with the view, VizQL Server sends live queries to the database, so data is always current โ no refresh schedule needed (only the cache may briefly serve results, controllable via cache policies).
MediumQ58. A country/province is missing and shows null in map view. What do you do?
Click the "unknown" indicator (bottom-right) โ Edit Locations โ match the unrecognized names to the right geography (fix spellings like "Orissa" โ "Odisha"), set the correct geographic role, or provide custom latitude/longitude. Filter genuine nulls if the row has no location at all.
MediumQ59. Find the customer with the lowest overall profit. What is their profit ratio?
Build: Customer on Rows, SUM(Profit) sorted ascending โ the top row is the lowest-profit customer. Profit ratio = SUM([Profit]) / SUM([Sales]) as a calculated field, formatted as %. (In Superstore data this classically lands on a heavily-discounted customer with a negative ratio.)
MediumQ60. How do you handle nulls and other special values?
Options: the null indicator's "Filter data" or "Show data at default position"; replace with ZN([Measure]) (nullโ0) or IFNULL([Field], "Unknown"); fix at source in Prep/Power Query when it's a data-quality issue. Choose based on whether null means zero, unknown, or bad data.
MediumQ61. Difference between sets and groups? Examples.
Group: a static combination of members into higher-level buckets (East+West โ "Coasts") โ no logic, no in/out. Set: a dynamic subset based on a condition (Top 10 customers by sales โ membership updates with data), supports IN/OUT comparison and combined sets. Rule: fixed labelling โ group; conditional/dynamic membership โ set.
MediumQ3. Have you ever used a context filter? When and why? Pros and cons?
Yes โ for example to show the Top 10 products within a selected region. Region must be a context filter, otherwise Top 10 is computed on all regions first. Pros: forces filter priority, can improve performance by shrinking the working dataset. Cons: the temporary context table must be recomputed whenever the filter changes, which can be slow on large data; too many context filters hurt performance.
MediumQ4. Difference between a normal/cascading filter and a context filter?
A normal filter works independently on the full dataset. A cascading filter ("Only relevant values") just changes what options are visible in another filter. A context filter actually changes the data other filters and calculations operate on โ Top N and FIXED LOD calculations respect context filters but ignore normal dimension filters.
MediumQ5. What is a Data Source filter? Advantages and disadvantages?
A filter applied at the data-source level that restricts data for every sheet and user of that source. Advantages: one place to enforce rules (e.g. only 2 years of data, or row-level security), better performance, consistent across workbooks. Disadvantage: analysts can't access excluded data even when they need it, and it's easy to forget it exists when debugging "missing" data.
MediumQ7. How to apply a common Apply button for all filters at once?
On each quick filter's dropdown, select Customize โ Show Apply Button. Each filter then waits for Apply. For one combined apply across many filters, the standard approach is to convert filters to parameters + calculated field, or place filters in a container so users set all values before the dashboard queries (Tableau has no single built-in global Apply for multiple quick filters).
MediumQ8. How to make a Reset button that resets all filters at once?
Create a dashboard Button object โ set its action to navigate to the same dashboard exported in its default state, or use a "Reset" dashboard action: save the default view as the published state, then the toolbar's "Revert" resets everything. Alternative: a parameter-driven approach or the newer dashboard navigation button + "Revert" combination.
MediumQ10. Will filters work when we do data blending?
Yes, but with limits: filters apply to their own data source. A filter from the primary source doesn't automatically filter the secondary source โ to filter across sources you must add the linking field to the view, use filter actions, or (in newer versions) cross-data-source filters on the common field.
MediumQ11. How to get cross-data-source filters? Is it possible in Tableau?
Yes โ since Tableau 10, if two data sources share a field (same name/type or mapped via Edit Relationship), right-click the filter โ Apply to worksheets โ All using related data sources. The filter then filters both sources together.
MediumQ13. What is a User filter? How to use it?
A user filter maps Tableau Server users/groups to allowed data values (Server โ Create User Filter โ pick field โ assign members to values). When published, each user sees only their rows โ the manual way to achieve row-level security. For scale, prefer a calculated field using USERNAME() against an entitlement column.
MediumQ15. How do you check performance in Tableau? Any tool used?
Use the built-in Performance Recording (Help โ Settings and Performance โ Start Performance Recording). Perform the slow actions, stop the recording, and Tableau opens a workbook showing time spent on query execution, layout and calculations. On Server, admin views and the http_requests repository data help too.
MediumQ16. Explain the complete Performance Recording option.
Start recording โ interact with the workbook (open, filter, change parameters) โ stop recording. Tableau generates a performance workbook with a timeline of events: executing query, computing layout, geocoding, blending, computing table calcs. Sort by duration to find the bottleneck โ if "executing query" dominates, optimize the data source/extract; if "computing layout", reduce marks and visuals.
MediumQ23. Can we do an incremental refresh in Tableau? How?
Yes. In the Extract dialog choose Incremental refresh and pick a column that identifies new rows (usually a date or increasing ID). Tableau appends only new rows on each refresh. Do a periodic full refresh too, because incremental won't capture updates or deletes to existing rows.
MediumQ24. What is the use of aggregation when creating an extract?
"Aggregate data for visible dimensions" rolls the extract up to the level of detail you actually use (e.g. daily totals instead of row-level transactions). The extract becomes dramatically smaller and faster โ ideal when you never need transaction-level drill-down.
MediumQ25. What is meant by data blending? How do you do it and what is it for?
Blending combines different data sources in one view: build the view from the primary source, then drag a field from the secondary source โ Tableau links them on the common field (orange link icon). Each source is aggregated separately and merged, like a left join from the primary. Use it when sources can't be joined directly (e.g. Excel targets + database actuals).
MediumQ27. How do you join two different data sources?
Two options: 1) Cross-database join โ add both connections inside one Tableau data source and join at row level; 2) Data blending โ keep them as separate sources and blend on a common field in the view. Join = row level before aggregation; blend = after aggregation.
MediumQ28. What type of join does data blending perform? Difference between join and blending?
Blending behaves like a left join from the primary source on aggregated results. Differences: a join combines row-level data from the same data source (or cross-database) before aggregation; a blend combines separately aggregated results from different sources. Row-level detail from the secondary source is not available in a blend.
MediumQ30. Why do you see a * (asterisk) after blending?
The asterisk means multiple values from the secondary source matched a single row of the primary source โ the blend can't show them all in one cell, so it shows *. Fix by blending at the correct level of detail (add the missing linking field) or aggregating the secondary source first.
MediumQ31. How do you create relationships between two data sources for blending?
Tableau auto-links fields with identical names and types. For different names go to Data โ Edit Blend Relationships โ Custom โ map the fields (e.g. "Cust ID" โ "Customer ID"). In the view, click the link icon next to the field to activate/deactivate blending on it.
MediumQ33. Have you built a chart apart from the default ones? What and how?
Good answer example: "Yes, a donut chart โ a pie chart on a dual axis where the second (smaller, blank) pie creates the hole; and a waterfall chart โ a Gantt bar on running total of the measure with negative size." Pick one you can actually reproduce and explain step by step.
MediumQ34. Two measures โ profit and sales by country, with filters. Which chart do you prefer?
Either a dual-axis combo (bars for sales, line for profit) or a scatter plot (sales vs profit, one mark per country) โ the scatter instantly exposes high-sales-but-low-profit countries. Add a region filter with "Only relevant values" for interactivity, and justify whichever you choose.
MediumQ36. Know all the charts and the scenarios they're useful for.
Quick map: Bar โ compare categories; Line โ trends over time; Pie/Donut โ parts of a whole (few slices); Scatter โ relationship of two measures; Heat map โ intensity across a matrix; Treemap โ hierarchical share; Histogram โ distribution; Box plot โ spread and outliers; Gantt โ duration/schedules; Bullet โ actual vs target; Map โ geographic patterns; Waterfall โ how increments build a total.
MediumQ37. Have you built a pie or donut chart? Explain how (donut).
Donut steps: create a pie of the measure by category โ drag the same aggregated measure to Rows twice โ make it dual axis โ on the second axis remove color/labels and shrink its size, set color to background โ this hollow circle over the pie forms the donut โ add a total label in the centre.
MediumQ40. What are parameters and how are they different from filters?
A parameter is a single global input value (number/string/date) that users control; by itself it does nothing until used in a calculation, filter, reference line or Top N. A filter directly restricts data. Parameters can do what filters can't: switch measures dynamically, drive What-If values, work across data sources.
MediumQ5. What are the components available in Tableau Server?
Sites (isolated tenants), projects, groups and users, workbooks and data sources, schedules (extract refresh, subscriptions), permissions, plus admin areas for monitoring, performance tuning and server status.
MediumQ7. How many levels of security are there in Tableau Server?
Four practical layers: 1) Authentication (who can log in โ AD/SAML/local), 2) Object/content permissions (site โ project โ workbook/view level), 3) Data source security (connection credentials), 4) Row-level security (which rows each user sees inside a view).
MediumQ8. What are the different permission roles in Tableau Server?
Site roles: Server/Site Administrator, Creator, Explorer (can publish), Explorer, Viewer. Content permission templates: View, Explore, Publish, Administer. Site role sets a user's maximum capability; content permissions decide what they can do on specific items.
MediumQ9. How do you take a backup from Tableau Server?
Using the TSM command line: tsm maintenance backup -f backup-file.tsbak -d โ this backs up the repository and file store. Schedule it regularly and store the .tsbak off the server (e.g. sync to S3).
MediumQ13. How can we manage alerts when the server goes down?
Enable built-in email alerts in TSM (server health notifications), monitor with external tools (Nagios, Datadog, CloudWatch) hitting Tableau's status endpoint, and set up the Backgrounder failure notifications so admins are emailed automatically.
MediumQ14. Where is the server installed? Basic requirements/configuration?
On a dedicated Windows/Linux machine (on-prem or cloud VM). Baseline for production: 8+ cores, 32GB+ RAM, 500GB+ SSD, 64-bit OS. Bigger deployments scale to multi-node clusters with roles split across nodes.
MediumQ15. Have you done the installation process for a server? How?
Outline answer: download installer โ run setup โ initialize TSM โ activate license โ configure identity store (local/AD), gateway port and run-as account โ initialize server โ create the first admin โ then configure sites, SMTP for emails, and backup schedule.
MediumQ17. Have you done ad-hoc reporting in Tableau? How is it achieved?
Yes โ via web edit on Tableau Server (Explorers open a published workbook and modify/answer questions in the browser) and by publishing certified data sources so business users build their own views with "Ask Data"/self-service without touching Desktop.
MediumQ23. Is performance monitoring possible on the server? How?
Yes โ built-in Administrative views (Status โ traffic, background tasks, slow views, disk usage), performance recording on individual views, and querying the Tableau Server repository (workgroup PostgreSQL) for deeper custom analysis.
MediumQ25. How do you schedule a normal workbook with a live connection?
Live connections don't need data refreshes โ the data is always current. What you can schedule for them is subscriptions (emailed snapshots on a schedule) and cache refresh policies. Refresh schedules apply to extracts, not live connections.
MediumQ26. How do you automate reports using Tableau?
Combine: extract refresh schedules (data stays current) + subscriptions (dashboards emailed to stakeholders daily/weekly) + data-driven alerts (email when a metric crosses a threshold) + the REST API/tabcmd for custom automation like PDF export to a shared drive.
MediumQ31. What challenges have you faced in Tableau Server?
Real-world examples to mention: extract refresh failures due to expired credentials, slow dashboards at peak load (fixed via extracts and fewer quick filters), permission conflicts from deny rules, disk filling with old extracts, and coordinating downtime for upgrades.
MediumQ32. Have you embedded a Tableau URL with other applications?
Yes โ dashboards can be embedded in web apps/SharePoint/Salesforce via the Embedding API / iframe share link, with URL parameters or JS API for filtering (e.g. ?Region=West), and trusted authentication or connected apps for single sign-on.
MediumQ34. A published workbook URL is given to a user โ what decides whether they can open it?
The chain: valid login to that site โ a site role of at least Viewer โ View permission on the workbook (no deny anywhere up the chain) โ access to the data (embedded credentials or their own) โ RLS then decides which rows they see.
๐ด Hard / Advanced โ 26 questions
HardQ29. Can I archive my most valuable workbooks and have version control at the same time?
Tableau Server doesn't have a built-in archive feature. However, you can use:
- Subscriptions: Set up subscriptions to be notified when workbooks are updated. You can then export the workbook at that point for archival purposes.
- Scheduling: Schedule Tableau Server to export workbooks periodically for archiving.
- Third-party tools: Explore tools that integrate with Tableau Server to automate workbook backups and version control.
- Version Control: You can achieve a basic form of version control by saving workbooks as .twbx packages at different points in time. However, this requires manual intervention.
HardQ31. Can I remove older workbooks (and archive them) from Tableau Server and simultaneously email the owner?
- Tableau Server doesn't offer built-in functionality to remove workbooks and email owners simultaneously. This might require scripting or custom solutions.
- You can manually remove the workbook and then email the owner.
- Consider using the Tableau Server REST API to automate the removal process and potentially trigger emails through custom scripts.
HardQ33. For HA and Tableau Server, how do I ensure the proper folders are synced?
- Tableau Server HA (High Availability) involves setting up multiple server nodes for redundancy.
- Folder synchronization ensures that workbooks and other resources are replicated across all HA nodes.
- Refer to the official Tableau documentation for detailed configuration steps on HA and folder synchronization specific to your Tableau Server version.
HardQ34. Can I take daily snapshots of Tableau Server's database to analyze workbook usage (views over time)?
Taking daily snapshots of the Tableau Server database for workbook usage, user logins, and data source usage requires advanced configurations. This likely involves Tableau Server APIs or scripting and would require working with a Tableau Server administrator.
HardQ35. How do I trigger an extract based off a database table being refreshed, instead of relying on Tableau's schedules?
Tableau Server's built-in scheduling doesn't directly trigger extracts based on database table refreshes.
Possible workarounds:
- Database Triggers: If your database supports triggers, create a trigger that fires upon table refresh. This trigger can then initiate a Tableau Server extract refresh through the REST API (requires scripting).
- External Monitoring: Set up external monitoring tools to detect database table updates. These tools can then trigger a Tableau Server extract refresh script via the REST API.
HardQ36. Can I automatically add users via the REST API instead of manually adding them?
Yes, you can automate user addition using Tableau Server's REST API. This eliminates manual user creation.
- Familiarize yourself with the REST API: refer to Tableau's documentation for user management endpoints and authentication methods.
- Develop a script: create a script (e.g., Python, Bash) that interacts with the Tableau Server REST API to add users, providing user information (username, email, etc.) and permissions.
- Schedule the script: schedule it to run periodically (e.g., daily) to add new users as needed.
HardQ37. How can I schedule automatic backups and sync the .tsbak file with AWS?
Tableau Server offers built-in backup functionality โ schedule automatic backups in the Settings โ Backup section.
Syncing backups with AWS:
- Configure Tableau Server backup to a network share accessible by Tableau Server and AWS S3.
- Create a script that copies the backup files from the network share to your AWS S3 bucket after each scheduled backup.
- Schedule the script to run after each Tableau Server backup for timely synchronization with S3.
HardQ39. Scenario: On Monday you create a worksheet with a filter and a parameter both based on Employee_ID. Monday evening, 6 new employees are inserted. Tuesday morning the data source is refreshed. How many distinct entries in the filter vs the parameter, and why?
Employee ID Filter:
- Specific IDs selected: If you selected specific employee IDs (e.g., 1, 2, 3) in the filter on Monday, it will still only show those same IDs (3) on Tuesday. The new employees won't be included unless you manually adjust the filter.
- All employee IDs selected: If you selected all employee IDs on Monday, it will continue to show all IDs (including the new ones) on Tuesday โ 10 distinct entries (original 4 + 6 new).
Employee ID Parameter: Regardless of the filter selection, the parameter will always reflect all employees in the table after the data refresh โ 10 distinct entries on Tuesday morning.
Explanation: The filter controls which data is displayed based on your selection and remains static unless manually changed. The parameter is a dynamic list that populates its values from the underlying data source, so it automatically updates when the data refreshes.
HardQ40. Calculating time between dates in the SAME column (e.g. time between orders)
Tableau easily calculates time between two dates in different columns: DATEDIFF('day', [start date], [end date]). But order data often stores dates in a single column โ how do we calculate time between consecutive orders?
Quick solution โ LOOKUP: use the LOOKUP table calculation to compare each row with the previous one. This works, but table calculations run in-memory and can hamper performance on larger data sets.
Better solution โ Custom SQL with DENSE_RANK:
- Connect to the data, drag in the orders table, and choose "Convert to Custom SQL".
- Use a
DENSE_RANK()command to rank order dates (ORDER BY), restarting for every customer (PARTITION BY) โ this numbers each customer's orders 1 through N. - Add a second Custom SQL table with the same query, but change the DENSE_RANK to
+1and name it "Previous Order Number" (rename the date as "Previous Order Date"). The +1 shifts the data set down by one row. - Join on "Order Number = Previous Order Number" and "Customer Name = Customer Name".
Now consecutive dates sit side by side and a simple DATEDIFF gives time between orders โ and it performs well even on big data, e.g. average days between orders as a bar chart per region.
HardQ46. Can I remove older workbooks and simultaneously email the owner?
Not built-in as one action. Do it manually (remove + email), or automate with the REST API: query stale workbooks (last accessed date from the repository), download an archive copy, delete, and send an email โ all in one script.
HardQ48โ50. Daily snapshots of Tableau Server's database for workbook usage / user logins / data source usage?
Yes โ the Tableau Server repository (workgroup PostgreSQL) holds views like historical_events, http_requests and views_stats. Enable repository access, snapshot the needed tables daily (or connect Tableau to the repository itself), and you can trend views per workbook, logins per user and data source hits over time.
HardQ62. Display top five and last five sales in the same view?
Approach: create two sets on the same field โ Top 5 by SUM(Sales) and Bottom 5 (Top 5 "by lowest") โ combine the sets (Create Combined Set, "shared members in either") โ filter the view on the combined set. Alternative: a rank calculation RANK(SUM([Sales])) filtered to rank โค 5 OR rank โฅ total โ 4.
HardQ9. How do you use the LOOKUP function with filters? Any impact?
LOOKUP(expression, offset) is a table calculation โ it runs after normal filters on the values visible in the view. So a dimension filter changes what LOOKUP sees and can break offsets. That's why "hiding" with a table-calc filter (e.g. LOOKUP(MIN([Date]),0) used as filter) is the trick to filter the view without disturbing LOOKUP/running calculations.
HardQ14. What is Row Level Security? Ways to achieve it in Tableau?
RLS restricts which rows each user sees in the same workbook. Three ways: 1) Manual user filters (quick, but high maintenance), 2) Calculated field with USERNAME() โ e.g. USERNAME() = [Manager Email] used as a data source filter, 3) Entitlement table joined to the data and filtered on the logged-in user (enterprise standard). Always apply as a data source filter so it can't be removed sheet by sheet.
HardQ17. A published workbook takes 3โ5 minutes to open and the user is unhappy. What is your first step?
First step: run a performance recording to find out where the time goes โ query, rendering or calculations. Then apply the matching fix: switch live โ extract, aggregate data, reduce quick filters (especially "Only relevant values"), cut the number of marks/visuals per dashboard, or move heavy logic from table calcs into the extract/source.
HardQ29. What problems have you faced during data blending?
Common real issues: the * (asterisk) appearing when multiple secondary values match one primary row; nulls when linking fields don't match exactly (spelling/case/data type); secondary fields can't be used on certain shelves; COUNTD and some calculations not supported from the secondary source; and performance drops when blending on high-cardinality fields.
HardQ39. What are LOD expressions? Explain FIXED, INCLUDE, EXCLUDE with example.
Level of Detail expressions compute values at a level independent of the view. FIXED โ exact level: {FIXED [Customer]: SUM([Sales])} gives each customer's lifetime sales on every row. INCLUDE โ adds a dimension to the view's level (e.g. average of per-order sales). EXCLUDE โ removes a dimension (e.g. show regional total next to each city). Classic use: cohort analysis with {FIXED [Customer]: MIN([Order Date])} for first-purchase date.
HardQ10. What are the different server processes in Tableau?
Key processes: Gateway (routes requests), Application Server (VizPortal) โ logins and browsing, VizQL Server โ renders views and runs queries, Backgrounder โ extract refreshes and subscriptions, Data Server โ manages published data sources, Repository (PostgreSQL) โ metadata, File Store / Data Engine (Hyper) โ extract storage and query engine, Cache Server.
HardQ11. How do Tableau permissions/security work in order after user login?
Order of evaluation: authentication โ site role (maximum capability) โ content permissions (deny beats allow; project โ workbook โ view) โ data security (credentials + row-level security). Effective permission = most restrictive combination of these layers.
HardQ12. What if the server goes down suddenly? First step?
First check server status: tsm status -v to see which process failed, and review logs. Communicate downtime to users, restart the failed service (tsm restart), and if hardware/corruption is involved, restore from the latest .tsbak backup. Root-cause afterwards (disk full and memory are the usual culprits).
HardQ16. User has editor permission on a project but can't view data in a shared workbook. How do you handle it?
Diagnose layer by layer: 1) workbook-level permission may deny view (deny overrides project allow), 2) the data source credentials may not be embedded โ the user is prompted or blocked, 3) row-level security may filter out all their rows. Check effective permissions on the workbook, embed credentials or fix the RLS mapping accordingly.
HardQ22. Live connection to a local Excel published to server โ will changes in the local Excel reflect after refresh? Why?
No. When you publish a workbook with a live connection to a local file, Tableau packages a copy of that file to the server. The server refreshes against its own copy โ it cannot see your local machine. Changes reflect only if the file sits on a network/cloud path the server can reach (UNC path, SharePoint/OneDrive), or if you republish.
HardQ24. Have you faced a timeout error? How do you handle it?
Yes โ long queries hitting the default limits. Fixes: optimize the query/extract (the real cure), or raise limits: vizqlserver.querylimit (query timeout) and session timeouts via TSM. Also check the database side timeout. Always prefer making the view faster over raising the timeout.
HardQ28. Can one workbook connect to different sites/instances of the same server as different data sources?
Published data sources are scoped to a single site โ a workbook lives in one site and can use that site's published sources. To combine data across sites, connect directly to the underlying databases instead, since cross-site references aren't supported.
HardQ29. Is it possible to change user authentication within one installation?
You can switch the identity store type (local โ Active Directory) but it's disruptive โ typically requires export/import of content and recreating users. Per-site you can vary some auth options (e.g. SAML on specific sites). Plan authentication before going live.
HardQ33. Explain Tableau Server architecture.
A multi-tier architecture: Gateway receives requests โ Application Server handles login/browsing โ VizQL Server turns interactions into queries and renders views โ Data Server/Data Engine (Hyper) serve data and extracts โ Backgrounder runs refreshes/subscriptions โ Repository (PostgreSQL) stores metadata โ File Store holds extracts. All processes can be distributed across nodes for scale and HA.
Excel interview questions
80+ Excel questions with answers organised by difficulty โ Excel is still the first screening round in most Indian data analyst interviews.
๐ข Easy โ 32 questions
EasyQ1. What is MS Excel, and how is it used in data analysis?
MS Excel is a spreadsheet application used to organize, analyze, and visualize data. In data analysis, it is used for creating reports, performing calculations, data cleaning, and generating insights through charts and pivot tables.
EasyQ2. What are some common data types in MS Excel?
Common data types in MS Excel include:
- Text
- Numbers
- Dates
- Boolean (TRUE/FALSE)
- Errors (e.g., #DIV/0!, #VALUE!)
EasyQ3. Explain the difference between a relative reference and an absolute reference in Excel.
- Relative Reference: Changes when a formula is copied to another cell (e.g.,
A1).
- Absolute Reference: Remains constant regardless of where the formula is copied (e.g., $A$1).
EasyQ4. What is a Pivot Table?
A Pivot Table is a powerful tool in Excel used to summarize, analyze, and present data from a larger dataset by grouping and filtering it.
EasyQ5. How do you use the VLOOKUP function?
The VLOOKUP function searches for a value in the first column of a range and returns a value in the same row from another column. Syntax: =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
EasyQ6. What is the difference between COUNT, COUNTA, and COUNTIF functions?
- COUNT: Counts numeric values only.
- COUNTA: Counts all non-blank cells.
- COUNTIF: Counts cells that meet a specific condition.
EasyQ7. How would you remove duplicate values from a dataset?
Go to the Data tab โ Click on Remove Duplicates โ Select columns to check for duplicates โ Click OK.
EasyQ8. What are conditional formatting rules, and how are they applied?
Conditional formatting allows you to format cells based on specific conditions (e.g., highlight cells greater than 100). Go to Home โ Conditional Formatting โ Select a rule type โ Apply the rule.
EasyQ9. What is the difference between a formula and a function in Excel?
- Formula: Custom expressions created by the user (e.g., =A1+B1).
- Function: Predefined operations in Excel (e.g., =SUM(A1:A10)).
EasyQ10. Explain the use of IF function in Excel.
The IF function performs a logical test and returns one value if TRUE and another if FALSE. Syntax: =IF(logical_test, value_if_true, value_if_false).
EasyQ11. How do you create a chart in Excel?
Select the data โ Go to the Insert tab โ Choose a chart type (e.g., Bar, Pie) โ Customize the chart as needed.
EasyQ12. What is the purpose of the CONCATENATE or CONCAT function?
These functions combine text from multiple cells into one. Example: =CONCAT(A1, " ", B1) combines first and last names.
EasyQ13. What are slicers in Excel?
Slicers are visual tools for filtering data in Pivot Tables or Pivot Charts, making it easier to segment and analyze data.
EasyQ14. How would you handle errors like #DIV/0! or #N/A?
- Use the IFERROR function to handle errors.
Example: =IFERROR(A1/B1, "Error").
- Check for blank cells or invalid references.
EasyQ15. What is the purpose of Data Validation?
Data Validation is used to restrict the type of data or values entered in a cell (e.g., allow only numbers between 1 and 100).
EasyQ16. What are Excel Tables, and why are they useful?
Excel Tables are structured data ranges with features like automatic filtering, sorting, and dynamic referencing, simplifying data management.
EasyQ17. How can you protect a worksheet?
Go to the Review tab โ Click Protect Sheet โ Set a password and select actions users are allowed to perform.
EasyQ18. What is the purpose of the Text-to-Columns feature?
Text-to-Columns splits text into separate columns based on a delimiter (e.g., comma, space) or fixed width.
EasyQ19. How do you apply filters in Excel?
Select the data โ Go to the Data tab โ Click Filter โ Use dropdown arrows to filter data by condition.
EasyQ20. Explain the use of XLOOKUP.
The XLOOKUP function searches for a value in a range and returns a corresponding value from another range. Syntax: =XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode]). WhatsApp: 91-9143407019 (for Personalise Coaching) 20 Intermediate QA
EasyQ21. How can you use the INDEX and MATCH functions together?
The INDEX function returns the value of a cell at a specific position, and the MATCH function finds the position of a value in a range. Example Dataset: Product Price Quantity A 100 50 B 150 30 C 200 40 Formula to find the quantity of "B": =INDEX(C2:C4, MATCH("B", A2:A4, 0)) Result: 30.
EasyQ22. What are array formulas, and how do you use them?
Array formulas perform multiple calculations and return a single or multiple results. Example: To find the total sales (Price ร Quantity for all rows): =SUM(A2:A4 * B2:B4) Press Ctrl + Shift + Enter for array evaluation.
EasyQ23. Explain how you can use conditional formatting with a formula.
You can use formulas to create custom rules. Example: Highlight rows where the "Price" is greater than 150.
EasyQ24. How do you use the OFFSET function?
OFFSET returns a reference to a range that is offset from a starting cell. Example: To get the value 200 in the dataset: =OFFSET(A1, 3, 1) Result: 200 (moves 3 rows down, 1 column right).
EasyWhat is the difference between CONCATENATE and "&" in Excel?
CONCATENATE and "&" both combine text, but "&" is more concise. For example, =A1&B1 achieves the same result as =CONCATENATE(A1, B1).
EasyHow can you freeze rows and columns simultaneously in Excel?
Use the "Freeze Panes" option under the "View" tab. Select the cell below and to the right of the rows and columns you want to freeze, and then click on "Freeze Panes."
EasyExplain the VLOOKUP function and when would you use it?
VLOOKUP searches for a value in the first column of a range and returns a corresponding value in the same row from another column. It's useful for looking up information in a table based on a specific criteria.
EasyWhat is the purpose of the IFERROR function?
IFERROR is used to handle errors in Excel formulas. It returns a specified value if a formula results in an error, and the actual result if there's no error.
EasyHow do you create a PivotTable, and what is its purpose?
To create a PivotTable, select your data, go to the "Insert" tab, and choose "PivotTable." It summarizes and analyzes data in a spreadsheet, allowing you to make sense of large datasets.
EasyExplain the difference between relative and absolute cell references
Relative references change when you copy a formula to another cell, while absolute references stay fixed. Use a $ symbol to make a reference absolute (e.g., $A$1).
EasyHow can you find and remove duplicate values in Excel?
Use the "Remove Duplicates" feature under the "Data" tab. Select the range containing duplicates, go to "Data" โ "Remove Duplicates," and choose the columns to check for duplicates.
EasyExplain the difference between a workbook and a worksheet
A workbook is the entire Excel file, while a worksheet is a single sheet within that file. Workbooks can contain multiple worksheets.
๐ก Medium โ 27 questions
MediumQ25. How do you combine multiple conditions in a formula?
Use the AND or OR functions. Example: Check if Price > 100 and Quantity > 40: =IF(AND(B2>100, C2>40), "Yes", "No").
MediumQ26. What is a dynamic named range, and how do you create one?
A named range that auto-expands as data is added โ formulas and charts using it never need re-pointing.
Method 1 โ Excel Table (modern): Ctrl+T โ use structured references like Table1[Sales] โ inherently dynamic.
Method 2 โ OFFSET formula (classic): Formulas โ Name Manager โ New โ Name: SalesData โ Refers to:
=OFFSET($A$2, 0, 0, COUNTA($A:$A)-1, 1)
COUNTA counts filled cells so the range height adjusts automatically. Now =SUM(SalesData) always covers all current data.
MediumQ27. How do you use the SUMIFS function?
SUMIFS adds values that meet multiple criteria. Example Dataset: Product Region Sales A North 500 B South 300 A North 200 Formula to sum "Sales" where Product = "A" and Region = "North": =SUMIFS(C2:C4, A2:A4, "A", B2:B4, "North") Result: 700.
MediumQ28. Explain the use of the LEN and TRIM functions.
- LEN: Counts characters in a cell.
- TRIM: Removes extra spaces.
Example: If A1 = " Hello ", =LEN(A1) โ 10. =LEN(TRIM(A1)) โ 5.
MediumQ29. How do you split text into columns using a formula?
Use TEXTSPLIT or MID with SEARCH. Example: Split "John_Doe" into first and last names: =LEFT(A1, SEARCH("_", A1) - 1) โ John. =RIGHT(A1, LEN(A1) - SEARCH("_", A1)) โ Doe.
MediumQ30. How do you create drop-down lists in Excel?
Use Data Validation:
- Select the cell(s) where the drop-down should appear
- Data tab โ Data Validation โ Allow: List
- In Source, either type values directly (
North,South,East,West) or select a range (=$G$2:$G$5) - Optional: add an Input Message (hint on select) and an Error Alert (blocks invalid typing)
Pro tips: keep the source list in an Excel Table so new items appear in the drop-down automatically; uncheck "Ignore blank" to force a selection; for a searchable modern dropdown, Excel 365 auto-suggests as you type.
MediumQ31. Explain how to use the TRANSPOSE function.
TRANSPOSE switches rows to columns or vice versa. Example: A B C 1 2 3 Use: =TRANSPOSE(A1:C1) Result: | 1 | | 2 | | 3 |
MediumQ32. How do you group data in Pivot Tables?
Right-click a field value in the Pivot Table โ Group. Three common types:
- Dates: group by Days/Months/Quarters/Years โ e.g. daily sales grouped into months for a trend view (Excel often auto-groups dates)
- Numbers: group into bins โ e.g. ages into 18โ25, 26โ35, 36โ45 by setting Start/End/By values
- Manual (text): select multiple items with Ctrl โ Group โ e.g. combine "Delhi + Gurgaon + Noida" into "NCR"
To remove: right-click โ Ungroup. Note: grouping is shared between Pivot Tables using the same cache โ create a separate cache if you need different groupings.
MediumQ33. How can you extract unique values from a column?
Use the UNIQUE function. Example: =UNIQUE(A2:A10) extracts distinct products.
MediumQ34. How do you calculate moving averages?
Use the AVERAGE function with OFFSET. Example: =AVERAGE(OFFSET(B2,0,0,3)) calculates a 3-period moving average.
MediumQ35. How do you use the TEXT function to format data?
TEXT formats numbers/dates as strings. Example: Convert date 01/01/2024 to "January 1, 2024": =TEXT(A1, "MMMM D, YYYY").
MediumQ36. How can you combine lookup and logical functions?
Use VLOOKUP with IF. Example: Check if the price of Product A exceeds 100: =IF(VLOOKUP("A", A2:C4, 2, FALSE)>100, "Yes", "No").
MediumQ37. What is Power Query in Excel?
Power Query is a tool to clean and transform data. Example: Import a CSV file and remove null rows using Power Query Editor.
MediumQ38. How do you use the FILTER function?
FILTER extracts rows that meet criteria. Example: Extract rows where Sales > 400: =FILTER(C2:C10, C2:C10>400).
MediumQ39. How do you calculate the rank of values?
Use the RANK function. Example: Rank Sales values: =RANK(C2, C2:C10).
MediumQ40. How do you use data consolidation?
Consolidation combines data from multiple ranges/sheets into one summary:
- Click the target cell โ Data tab โ Consolidate
- Choose the Function (Sum, Average, Countโฆ)
- Add each source range (e.g. Jan!B2:D10, Feb!B2:D10, Mar!B2:D10) with the Add button
- Tick "Top row" and "Left column" labels so Excel matches categories by name even if order differs
- Tick "Create links to source data" if you want the summary to auto-update
Example: 12 monthly sheets with region-wise sales โ one consolidated yearly sheet with total per region. Modern alternative: Power Query โ Append Queries, which is refreshable and handles messy columns better.
MediumQ41. How do you create dynamic dashboards in Excel?
Dynamic dashboards use Pivot Tables, Slicers, and charts linked to the data model. Example Dataset: Product Region Month Sales A North Jan 500 B South Jan 300 A North Feb 700
- Create Pivot Tables to summarize data.
- Add Slicers for "Region" and "Month".
- Create charts to visualize trends.
MediumQ42. Explain the concept of Power Pivot.
Power Pivot extends Excel's ability to analyze large datasets by allowing relationships between tables, advanced calculations, and data modeling. Example: Create a relationship between "Sales" and "Products" tables based on Product ID and calculate total sales per region.
MediumQ43. How do you use advanced filtering with criteria ranges?
Advanced Filter extracts rows matching complex AND/OR conditions:
- Create a criteria range: copy the headers, then put conditions under them โ conditions in the same row = AND, in different rows = OR
- Data tab โ Advanced โ select the List range (your data) and Criteria range
- Choose "Copy to another location" to extract results elsewhere, and tick "Unique records only" for dedup
Example: criteria Region = "North" AND Sales > 400 in one row extracts only northern high-sales rows. Add a second row with Region = "South", Sales > 800 to make it an OR of the two conditions โ something normal filters can't do in one shot.
MediumQ44. How do you use the LET function in Excel?
LET assigns names to calculations to reuse in formulas. Example: Calculate (Sales - Cost) / Sales: Sales Cost 500 300 Formula: =LET(profit, A2-B2, margin, profit/A2, margin) Result: 0.4 (40%).
MediumQ45. Explain the use of the LAMBDA function.
LAMBDA lets you create your own reusable custom function without VBA:
- Write the logic:
=LAMBDA(sales, cost, (sales-cost)/sales) - Test it inline by calling immediately:
=LAMBDA(sales,cost,(sales-cost)/sales)(500,300)โ 0.4 - Save it as a named function: Formulas โ Name Manager โ New โ Name:
PROFITMARGIN, Refers to: the LAMBDA formula - Now use it anywhere like a native function:
=PROFITMARGIN(A2, B2)
Benefits: complex logic written once, reused everywhere, no macro security warnings โ available in Excel 365.
MediumWhat is the purpose of the INDEX and MATCH functions?
INDEX returns a value in a specified range based on the row and column number, while MATCH searches for a value in a range and returns its relative position. Combined, they provide a flexible way to look up data.
MediumHow do you write and use nested IF statements? (bonus calculation example)
=IF(B2>=100000, B2*10%,
IF(B2>=50000, B2*7%,
IF(B2>=25000, B2*5%, 0)))
Conditions are checked top-down; first true wins. For many tiers, IFS() or a lookup table with VLOOKUP approximate match is cleaner than deep nesting.
MediumVLOOKUP vs HLOOKUP vs XLOOKUP vs INDEX-MATCH โ when and why?
VLOOKUP โ vertical lookup, leftโright only, breaks if columns move. HLOOKUP โ same but horizontal rows. INDEX-MATCH โ any direction, robust to column changes, the classic pro combo. XLOOKUP โ modern replacement: any direction, exact match by default, built-in if-not-found, can return ranges. Use XLOOKUP where available; INDEX-MATCH for older Excel.
MediumAdvanced Filters and Conditional Formatting โ effective use
Advanced Filter: criteria-range based filtering with AND/OR logic, extract unique records, copy results to another location โ powerful for multi-condition extraction without formulas. Conditional Formatting: color scales for heatmaps, icon sets for KPI status, data bars for in-cell comparison, and custom formula rules (e.g. highlight whole row where =$E2="Pending") for review-ready reports.
MediumHow do you handle duplicates and missing data in Excel (cleaning workflow)?
- Profile first: COUNTBLANK for gaps, Conditional Formatting โ Duplicate Values.
- Duplicates: Remove Duplicates on the true key columns; keep a raw copy.
- Missing: fill with defaults/median where justified, Go To Special โ Blanks for bulk fill, or flag as "Unknown".
- Standardize: TRIM/CLEAN/PROPER for text, consistent date types.
- Best: do all steps in Power Query so cleaning is recorded and refreshable.
MediumExcel Data Validation โ dropdowns and restricting inputs
Data โ Data Validation: List for dropdowns (source a range/table for dynamic lists), whole number/date ranges to block invalid entries, custom formulas (e.g. =COUNTIF($A:$A, A2)=1 to prevent duplicate entry), plus input messages and error alerts. Cascading dropdowns: INDIRECT with named ranges.
๐ด Hard / Advanced โ 19 questions
HardQ46. How do you create a dependent drop-down list?
A dependent (cascading) drop-down changes its options based on another cell's selection โ e.g. select "Maharashtra" โ city list shows only Mumbai/Pune/Nagpur.
- Create lists for each parent value and name each range exactly as the parent value (select Mumbai/Pune/Nagpur โ Name Box โ type
Maharashtra) - First drop-down (State): normal Data Validation list
- Second drop-down (City): Data Validation โ List โ Source:
=INDIRECT(A2)where A2 holds the selected state
INDIRECT converts the selected text into the matching named range. Note: named ranges can't contain spaces โ use underscores and SUBSTITUTE: =INDIRECT(SUBSTITUTE(A2," ","_")).
HardQ47. How do you handle complex nested formulas?
Break them into helper columns or use LET to simplify. Example: Calculate bonuses: =IF(Sales>500, IF(Region="North", Sales*0.1, Sales*0.05), 0).
HardQ48. How do you use the XLOOKUP function for two-way lookups?
XLOOKUP searches both rows and columns. Example Dataset: Jan Feb North 500 600 South 300 400 Find "Feb" sales for "North": =XLOOKUP("North", A2:A3, XLOOKUP("Feb", A1:C1, B2:C3)) Result: 600.
HardQ49. How do you remove outliers from a dataset?
Use statistical measures like the interquartile range (IQR). Example: Values 10 50 100 500 Find Q1, Q3, and IQR: =QUARTILE(A1:A4, 1) โ 30. =QUARTILE(A1:A4, 3) โ 125. Outlier threshold: Q3 + 1.5*IQR โ 325.
HardQ50. How do you use Solver for optimization?
Solver finds the best input values under constraints (enable: File โ Options โ Add-ins โ Solver Add-in):
- Data tab โ Solver
- Set Objective: the cell to optimize (e.g. Total Profit) โ Max/Min/Value of
- By Changing Variable Cells: the inputs Solver can adjust (e.g. units of each product)
- Subject to Constraints: Add rules โ e.g.
Total_Hours <= 500,Units >= 0, integers only - Choose Simplex LP (linear) or GRG Nonlinear โ Solve
Classic example: maximize profit deciding how many chairs vs tables to make, given limited wood and labour hours โ Solver returns the optimal production mix.
HardQ51. How do you perform What-If Analysis using Goal Seek?
Goal Seek back-solves ONE input to hit a target output:
- Data tab โ What-If Analysis โ Goal Seek
- Set cell: the formula cell (e.g. Profit = Sales ร Margin โ Fixed Costs)
- To value: the target (e.g. 500)
- By changing cell: the input to adjust (e.g. Sales)
Excel iterates until the formula hits the target โ e.g. "you need โน8,333 sales for โน500 profit." Limits: only one variable and one target; for multiple inputs/constraints use Solver, for many scenarios use Data Tables.
HardQ52. Explain the concept of array spilling in Excel.
Array formulas auto-fill adjacent cells when returning multiple values. Example: =SEQUENCE(3, 2, 1, 1) produces: 1 2 3 4 5 6
HardQ53. How do you handle large datasets efficiently?
- Use Excel Tables for structured references.
- Filter data with Power Query.
- Summarize with Pivot Tables.
HardQ54. How do you use Power Query to clean data?
Power Query (Data tab โ Get Data) records cleaning steps that replay on every refresh:
- Load: Get Data โ from File/Folder/Database โ Transform Data (opens the editor)
- Remove duplicates: select key columns โ right-click โ Remove Duplicates
- Split "John_Doe": select column โ Split Column โ By Delimiter โ underscore โ two columns First/Last name
- Other one-click cleans: change data types, Trim/Clean text, Replace Values, fill down blanks, unpivot wide columns, merge/append tables
- Close & Load โ later just right-click โ Refresh and every step re-applies to new data
Interview line: "I do all repeatable cleaning in Power Query instead of manual edits โ the steps are documented in Applied Steps and the workbook refreshes in one click."
HardQ55. How do you use VBA to automate tasks?
Write macros to automate repetitive tasks. Example: Automatically color cells with values > 100. Sub ColorCells() Dim rng As Range For Each rng In Selection If rng.Value > 100 Then rng.Interior.Color = RGB(255, 0, 0) End If Next rng End Sub
HardQ56. How do you create dynamic charts?
Dynamic charts auto-update when data grows. Two methods:
- Excel Table method (best): convert data to a Table (Ctrl+T) โ build the chart on the Table โ new rows automatically appear in the chart. Zero maintenance.
- OFFSET named-range method (classic interview answer): define a name with
=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)โ use the named range as the chart's series source โ the range self-expands with data.
Combine with slicers/Pivot Charts for interactive dynamic dashboards.
HardQ57. How do you use the UNIQUE and SORT functions together?
Extract and sort unique values. Example: =SORT(UNIQUE(A2:A10)).
HardQ58. How do you calculate weighted averages?
Use SUMPRODUCT and SUM. Example Dataset: Item Weight Score A 2 80 B 3 90 =SUMPRODUCT(B2:B3, C2:C3)/SUM(B2:B3) โ 86.
HardQ59. How do you identify duplicate values across sheets?
Use COUNTIF with 3D referencing. Example: =COUNTIF(Sheet2!A:A, A1).
HardQ60. How do you implement regression analysis in Excel?
Three ways, best to mention all:
- Data Analysis ToolPak: File โ Options โ Add-ins โ enable โ Data tab โ Data Analysis โ Regression โ set Y range (dependent, e.g. Sales) and X range (independent, e.g. Ad Spend) โ output includes Rยฒ, coefficients, p-values
- Functions:
=SLOPE(Y,X),=INTERCEPT(Y,X),=RSQ(Y,X), or=LINEST()for full multi-variable stats - Visual: scatter chart โ right-click points โ Add Trendline โ Linear โ tick "Display Equation" and "Display R-squared"
Interpreting: equation y = 2.5x + 100 means every โน1 of ad spend adds โน2.5 sales; Rยฒ = 0.85 means 85% of sales variation is explained by ad spend.
HardWhat are Array Formulas? Multi-criteria without helper columns
=SUM((A2:A100="West")*(B2:B100="Laptop")*C2:C100)
=SUMPRODUCT((A2:A100="West")*(C2:C100))
Array formulas evaluate ranges element-wise in one formula. Modern Excel has dynamic arrays: FILTER, UNIQUE, SORT, SEQUENCE that spill results automatically โ e.g. =UNIQUE(FILTER(A2:A100, B2:B100>1000)).
HardPower Query and Power Pivot โ roles in large datasets & data models
Power Query = ETL: connect (files/DB/web), clean, reshape, merge โ steps recorded and refreshable. Power Pivot = modeling: load millions of rows into the in-memory data model, relate tables, write DAX measures, then analyse with pivot tables far beyond the 1,048,576-row sheet limit. Together they turn Excel into a mini BI tool โ same engines as Power BI.
HardWhat-If Analysis: Goal Seek, Data Tables, Scenario Manager, Solver
- Goal Seek: back-solve one input โ "what sales hit โน10L profit?"
- Data Table: outcome grid across 1โ2 changing inputs (sensitivity analysis).
- Scenario Manager: save Best/Worst/Expected input sets and switch.
- Solver: optimize with constraints โ maximize profit given budget and capacity limits.
HardAutomating repetitive tasks with VBA (Macros)
Record a macro (View โ Macros โ Record) for formatting/cleanup routines, then edit VBA for logic โ e.g. loop through 30 files, standardize, and consolidate into one sheet; auto-generate and email a daily report. Mention: store in .xlsm, add error handling, and that Power Query/Office Scripts now replace many macro use cases.
SQL interview questions
Query writing, must-know differences and NULL handling with complete solutions โ every query has a copy button.
๐ข Easy โ 11 questions
EasyQ1. Write a query to fetch the second-highest salary from an employee table
Option 1: Using LIMIT + OFFSET (MySQL/PostgreSQL)
SELECT DISTINCT salary
FROM employee
ORDER BY salary DESC
LIMIT 1 OFFSET 1;
What's happening here?
DISTINCT salary: ensures we don't get duplicates.ORDER BY salary DESC: ranks the salaries from highest to lowest.LIMIT 1 OFFSET 1: skips the first result (the highest) and returns the next one (the second highest).
Option 2: Using a Subquery (works in all SQL flavors)
SELECT MAX(salary)
FROM employee
WHERE salary < (SELECT MAX(salary) FROM employee);
How it works: the subquery fetches the highest salary; the outer query finds the maximum salary less than the highest โ giving the second highest.
Bonus tip โ what if you need the 3rd, 4th, or nth highest salary? Use OFFSET nโ1, or a window function like DENSE_RANK().
EasyQ4. Interviewer: What is the difference between WHERE and HAVING?
1. WHERE Clause:
- The WHERE clause is used to filter rows before any grouping is done.
- It applies conditions to individual rows in a table.
- If you want to filter data based on a column's value, you use WHERE.
Example: find all orders where the amount is greater than 100:
SELECT * FROM orders
WHERE amount > 100;
2. HAVING Clause:
- The HAVING clause is used to filter groups after the GROUP BY operation.
- It applies conditions to groups of rows that result from the grouping.
- If you want to filter based on an aggregated value (like the sum, average, etc.), you use HAVING.
Example: find customers who have made total purchases over 500:
SELECT customer_id, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 500;EasyHAVING vs WHERE clause
- WHERE: Filters rows before grouping.
- HAVING: Filters groups after the GROUP BY clause.
EasyUNION vs UNION ALL
- UNION: Removes duplicates and combines results.
- UNION ALL: Combines results without removing duplicates (faster).
EasyJOIN vs UNION
- JOIN: Combines columns from multiple tables.
- UNION: Combines rows from multiple tables with similar structure.
EasyDELETE vs DROP vs TRUNCATE
- DELETE: Removes rows, with the option to filter (WHERE).
- DROP: Removes the entire table or database.
- TRUNCATE: Deletes all rows but keeps the table structure.
Easy1. What is NULL in SQL?
NULL represents the absence of a value in a field. It is not the same as an empty string or zero; it is an unknown or undefined value.
Easy2. How to check for NULL values in a column?
Use the IS NULL or IS NOT NULL condition in the WHERE clause.
SELECT * FROM tableName WHERE columnName IS NULL;Easy3. What is the difference between NULL and an empty string?
NULL represents the absence of a value, while an empty string is a valid string with zero length.
Easy4. How to replace NULL values with a specific value in a query result?
Use the COALESCE function.
SELECT COALESCE(columnName, 'Replacement Value') AS columnName
FROM tableName;Easy7. How to insert a NULL value into a column during data insertion?
Simply omit the column from the INSERT statement or explicitly use the keyword NULL.
INSERT INTO tableName (column1, column2) VALUES (value1, NULL);๐ก Medium โ 10 questions
MediumQ2. Write a query to find employees earning more than their managers
Assume the table employees has: emp_id, name, salary, manager_id
SELECT e.name AS employee, e.salary,
m.name AS manager, m.salary AS manager_salary
FROM employees e
JOIN employees m ON e.manager_id = m.emp_id
WHERE e.salary > m.salary;
- Self-join: matches employees (e) with their managers (m).
- Filters those where employee's salary > manager's salary.
Show the difference in salary:
SELECT e.name, e.salary - m.salary AS salary_difference
FROM employees e
JOIN employees m ON e.manager_id = m.emp_id
WHERE e.salary > m.salary;MediumQ3. Interviewer: Find the Nth highest salary (e.g. 3rd highest) โ scenario
You are given a table Employee with columns id, name, and salary. Write a query to find the 3rd highest salary.
Approach 1: Using LIMIT with OFFSET
We can sort the salaries in descending order and then use the OFFSET clause to skip the top 2 salaries and fetch the next one (which will be the 3rd highest).
SELECT DISTINCT salary
FROM Employee
ORDER BY salary DESC
LIMIT 1 OFFSET 2;
ORDER BY salary DESC: sorts the salaries in descending order.LIMIT 1 OFFSET 2: skips the top 2 salaries and fetches the next one (3rd highest).
Approach 2: Using a Subquery
Alternatively, we can use a subquery that returns distinct salaries and find the 3rd highest by comparing with the maximum.
SELECT MAX(salary)
FROM Employee
WHERE salary < (SELECT MAX(salary)
FROM Employee
WHERE salary < (SELECT MAX(salary)
FROM Employee));
- The innermost subquery finds the highest salary.
- The middle subquery finds the second-highest salary.
- The outer query returns the 3rd highest salary.
MediumRANK vs DENSE_RANK
- RANK: Provides a ranking with gaps if there are ties.
- DENSE_RANK: Provides a ranking without gaps, even in the case of ties.
For salaries 100, 100, 90 โ RANK gives 1, 1, 3 while DENSE_RANK gives 1, 1, 2.
MediumCTE vs TEMP TABLE
- CTE: Temporary result set used within a single query.
- TEMP TABLE: Physical temporary table that persists for the session.
MediumSUBQUERIES vs CTE
- Subqueries: Nested queries inside the main query.
- CTE: Can be more readable and used multiple times in a query.
MediumISNULL vs COALESCE
- ISNULL: Replaces NULL with a specified value, accepts two parameters.
- COALESCE: Returns the first non-NULL value from a list of expressions, accepting multiple parameters.
Medium5. Explain the behaviour of NULL in aggregate functions
If an aggregate function encounters a NULL value, it generally ignores it โ except for the COUNT(*) function, which counts all rows, including those with NULL values.
Medium6. Can a table have multiple NULL values in a unique key column?
In SQL Server, you can have only one NULL value in a unique key column.
Medium8. Explain the use of the ISNULL function
The ISNULL function returns the specified replacement value if the expression is NULL; otherwise, it returns the expression itself.
SELECT ISNULL(columnName, 'Replacement Value') AS columnName
FROM tableName;Medium9. How to count the number of NULL values in a column?
Use the COUNT function with a CASE statement.
SELECT COUNT(CASE WHEN columnName IS NULL THEN 1 END) AS NullCount
FROM tableName;๐ด Hard / Advanced โ 5 questions
HardQ5. Interviewer: How would you improve the performance of queries involving joins on large tables?
To improve the performance of queries involving joins on large tables, there are several key techniques you can use:
- Partitioning: Ensure that the large tables are partitioned based on the join key. Partitioning helps reduce the amount of data processed, as only relevant partitions are scanned.
- Bucketing: In addition to partitioning, you can bucket the tables on the join columns. This distributes data more evenly across the buckets and reduces shuffling during the join process.
- Map-Side Join: If one of the tables is small enough, you can use a map-side join (also called broadcast join). This sends the small table to all the nodes, avoiding a shuffle and speeding up the join.
- Optimize Join Types: Use the appropriate join type based on the data size โ broadcast join for small tables, sort-merge join for larger sorted datasets, bucketed map join if both tables are bucketed on the join key.
- Increase Parallelism: Adjust the number of reducers or partitions in Spark/Hive to better distribute the join processing workload across available resources.
- Use EXPLAIN: Before running a query, use the EXPLAIN command to understand how the join is being executed and identify bottlenecks in the query plan.
HardQ6. Interviewer: How would you optimize a slow-running SQL query?
- Check Indexes: Ensure that the columns used in WHERE, JOIN, and ORDER BY clauses have appropriate indexes.
- Analyze Query Execution Plan: Use tools like EXPLAIN to see how the query is executed and identify bottlenecks.
- Optimize Joins: Use appropriate join types (INNER JOIN, LEFT JOIN, etc.) and reduce the number of joins if possible.
- Filter Early: Apply filters in the WHERE clause as early as possible to reduce the amount of data processed.
- Limit Data: Select only the columns you need instead of using SELECT * and use LIMIT to restrict the number of rows.
- Use Caching: Cache frequently accessed data to avoid repeated computations.
These steps should help improve the query's performance.
HardINTERSECT vs INNER JOIN
- INTERSECT: Returns common rows from two queries.
- INNER JOIN: Combines matching rows from two tables based on a condition.
HardEXCEPT vs NOT IN
- EXCEPT: Returns rows in the first query but not in the second.
- NOT IN: Filters rows where a column's value is not in a given list.
Hard10. Can NULL values be indexed in SQL Server?
Yes, NULL values can be indexed. However, keep in mind that querying for NULL values might be less efficient than querying for non-NULL values due to the way indexes work.
Data Science & AI questions
Python, statistics, machine learning and Generative AI โ the questions that separate a data analyst from a future data scientist. Curated by Mahendra Singh.
Python & Pandas
EasyWhat is Pandas and why is it essential for data analysis?
Pandas is Python's core data analysis library built around the DataFrame (table) and Series (column). It handles reading data (CSV/Excel/SQL), cleaning (nulls, types, duplicates), transformation (filtering, groupby, merge/join, pivot) and analysis โ basically Excel + SQL powers inside Python, scalable to millions of rows.
import pandas as pd
df = pd.read_csv("sales.csv")
df.groupby("region")["amount"].sum().sort_values(ascending=False)EasyDifference between loc and iloc in Pandas?
loc selects by label (index/column names); iloc selects by integer position.
df.loc[5, "sales"] # row with index label 5, column "sales"
df.iloc[5, 2] # 6th row, 3rd column by position
df.loc[df["region"]=="West", ["sales","profit"]] # boolean filteringMediumHow do you handle missing values in Pandas?
df.isnull().sum() # count nulls per column
df.dropna() # drop rows with any null
df["age"].fillna(df["age"].median()) # fill with median
df["city"].fillna("Unknown") # fill with constant
df["sales"] = df["sales"].interpolate() # interpolate time series
Choice depends on meaning: drop when few and random; median/mode-fill for skewed numeric/categorical; interpolate for time series; sometimes a "missing" flag column is itself informative.
MediumDifference between merge, join and concat in Pandas?
pd.merge() โ SQL-style join on key columns (how = inner/left/right/outer). df.join() โ convenience join on the index. pd.concat() โ stacks DataFrames vertically (rows, like UNION ALL) or horizontally.
pd.merge(orders, customers, on="customer_id", how="left")
pd.concat([jan_df, feb_df, mar_df])MediumExplain groupby with an example โ the analyst's daily tool
df.groupby("region").agg(
total_sales=("amount", "sum"),
avg_order =("amount", "mean"),
orders =("order_id", "nunique")
).reset_index()
Split-apply-combine: split rows into groups, apply aggregations, combine into a summary table โ the Pandas equivalent of GROUP BY in SQL / a pivot table in Excel.
EasyHow do you remove duplicates and find them first?
df.duplicated().sum() # how many duplicate rows
df[df.duplicated(subset=["email"], keep=False)] # view all dup emails
df = df.drop_duplicates(subset=["email"], keep="first")EasyWhat is a lambda function and where do analysts use it?
An anonymous one-line function, mostly with apply() for quick row/column transformations:
df["price_band"] = df["price"].apply(
lambda x: "High" if x > 1000 else "Low")
For pure element-wise math, vectorized operations (df["a"]*df["b"]) are faster than apply+lambda.
EasyDifference between a list, tuple, set and dictionary?
- List [1,2,2] โ ordered, mutable, allows duplicates.
- Tuple (1,2) โ ordered, immutable; used for fixed records, dict keys.
- Set {1,2} โ unordered, unique values; fast membership tests, dedup.
- Dict {"a":1} โ keyโvalue mapping; the workhorse for lookups and JSON-like data.
HardHow would you read a 10GB CSV that doesn't fit in memory?
chunks = pd.read_csv("big.csv", chunksize=1_000_000)
total = sum(chunk["amount"].sum() for chunk in chunks)
Options: chunked reading and aggregating per chunk; loading only needed columns (usecols) with efficient dtypes; converting to Parquet; or scaling out with DuckDB/Polars/Dask/Spark for genuinely big data.
Statistics & Probability
EasyMean vs median vs mode โ when does median beat mean?
Mean = average; median = middle value; mode = most frequent. Median wins with skewed data/outliers: for salaries [30k, 35k, 40k, 45k, 10L], mean โ 2.3L (misleading) while median = 40k (representative). That's why house prices and incomes are reported as medians.
EasyExplain standard deviation and variance simply
Both measure spread around the mean. Variance = average of squared deviations; standard deviation = its square root (same units as the data). Two shops can both average โน50k daily sales โ SD 2k means steady, SD 30k means wild swings. Low SD = consistent, high SD = volatile.
MediumCorrelation vs causation โ the classic trap
Correlation measures how two variables move together (โ1 to +1); causation means one drives the other. Ice-cream sales correlate with drownings โ summer causes both. Analysts must say "associated with", check confounders, and only claim causation from controlled experiments (A/B tests).
MediumWhat is a p-value in plain language?
The probability of seeing results at least this extreme if there were truly no effect (null hypothesis true). p = 0.03 โ only a 3% chance this pattern is pure luck โ at the common 0.05 threshold we call it statistically significant. It is NOT the probability the hypothesis is true, and significance โ business importance.
MediumExplain hypothesis testing with a business example
Question: did the new checkout page increase conversion? H0 (null): no difference. H1: conversion increased. Run an A/B test, compute the test statistic (e.g. two-proportion z-test), get the p-value; if p < 0.05 reject H0 and roll out the new page. Also check sample size/power before trusting the result.
HardWhat is the Central Limit Theorem and why does it matter?
CLT: the distribution of sample means approaches a normal curve as sample size grows (~30+), regardless of the population's shape. It's why we can build confidence intervals and run t-tests on revenue-per-user or delivery times even when the raw data is skewed.
HardType I vs Type II error?
Type I (false positive): rejecting a true null โ claiming the campaign worked when it didn't (probability = ฮฑ, usually 5%). Type II (false negative): missing a real effect (probability = ฮฒ; power = 1โฮฒ). Business framing: Type I wastes money on a fake win; Type II leaves a real win on the table.
MediumWhat are outliers and how do you detect & treat them?
Values far from the rest. Detect: IQR rule (outside Q1โ1.5ยทIQR to Q3+1.5ยทIQR), z-score > 3, or box plots. Treat: investigate first (data-entry error vs genuine event) โ fix errors, cap/winsorize, analyze with and without, or use robust metrics (median). Never silently delete โ a fraud spike "outlier" may be the whole story.
Machine Learning
EasyWhat is Machine Learning in one interview-ready line?
ML is teaching computers to learn patterns from data and make predictions/decisions without being explicitly programmed with rules โ e.g. learning from past transactions which future ones look fraudulent.
EasySupervised vs Unsupervised vs Reinforcement learning?
- Supervised: learn from labelled data (X โ known Y). Predict price, detect spam. Algorithms: linear/logistic regression, decision trees, random forest, XGBoost.
- Unsupervised: find structure in unlabelled data. Customer segmentation (K-Means), anomaly detection, PCA.
- Reinforcement: an agent learns by trial-and-error rewards โ game AI, robotics, recommendation tuning.
EasyRegression vs Classification?
Both supervised. Regression predicts a continuous number (next month's sales, house price). Classification predicts a category (churn: yes/no, sentiment: positive/neutral/negative). Same data can frame both: predict revenue (regression) vs predict "will spend >โน10k?" (classification).
MediumExplain overfitting and how to prevent it
Overfitting = the model memorizes training data (noise included) and fails on new data โ 99% train accuracy, 65% test. Prevent: train/test split & cross-validation, simpler models, regularization (L1/L2), pruning/limiting tree depth, more data, early stopping, dropout (neural nets). Underfitting is the opposite โ too simple to capture the pattern.
HardWhat is the biasโvariance tradeoff?
Bias = error from oversimplifying (underfit); variance = error from oversensitivity to training data (overfit). Simple models: high bias/low variance; complex models: low bias/high variance. The art is the sweet spot in the middle โ tuned via validation curves and regularization.
MediumExplain train-test split and cross-validation
Split data (e.g. 80/20) so the model is evaluated on unseen data. K-fold cross-validation goes further: split into K parts, train K times each holding out one fold, average the scores โ a more reliable estimate, especially on small datasets. Golden rule: test data must never leak into training (fit scalers/encoders on train only).
HardPrecision vs Recall vs F1 โ and when accuracy lies
With 99% legit transactions, a model saying "never fraud" is 99% accurate and useless. Precision = of predicted positives, how many were right (cost of false alarms). Recall = of actual positives, how many we caught (cost of missing). F1 = harmonic mean of both. Fraud/cancer screening โ prioritize recall; spam filtering โ precision.
MediumExplain Linear and Logistic Regression simply
Linear regression fits a line y = b0 + b1x to predict a number (ad spend โ sales). Logistic regression passes that line through a sigmoid to output a 0โ1 probability for classification (will the customer churn?). Despite the name, logistic regression is a classification algorithm โ and a favourite interview trick question.
MediumHow does a Decision Tree work, and what is a Random Forest?
A decision tree splits data by the most informative questions ("Income > 50k?") into purer and purer groups โ easy to explain, prone to overfitting. A random forest builds hundreds of trees on random data/feature subsets and votes โ much more accurate and stable. Follow-up: bagging (forest, parallel) vs boosting (XGBoost, sequential error-fixing).
MediumWhat is K-Means clustering? Give a business use case
Unsupervised algorithm grouping data into K clusters: pick K centers โ assign points to nearest center โ recompute centers โ repeat until stable. Use case: customer segmentation on recency/frequency/monetary value revealing "champions", "at-risk", "bargain hunters" for targeted marketing. K is chosen via the elbow method/silhouette score.
MediumWhat is feature engineering? Examples
Creating better model inputs from raw data โ often more impactful than changing algorithms. Examples: date โ day-of-week/month/festival-flag; amount โ log(amount) for skew; address โ distance-from-city-center; transactions โ RFM features per customer; categorical โ one-hot/target encoding; scaling for distance-based models.
Generative AI & LLMs
EasyWhat is Generative AI and how is it different from traditional ML?
Traditional ML predicts (a number, a class) from patterns; Generative AI creates new content โ text, images, code โ by learning the underlying distribution of data. LLMs like GPT and Claude generate text token by token, predicting the next most likely token given context, trained on massive corpora.
EasyWhat is an LLM and what does 'token' mean?
A Large Language Model is a neural network (transformer architecture) with billions of parameters trained on huge text datasets to predict the next token. A token is a chunk of text (~4 characters / ยพ of a word in English) โ models read and generate token by token, and context windows and API pricing are measured in tokens.
MediumWhat is prompt engineering? Give practical techniques
Designing inputs to get reliably good LLM outputs. Techniques: be specific with role + task + format ("You are a SQL expert; return only the query"); give few-shot examples; ask for step-by-step reasoning on complex problems; constrain output (JSON schema, word limits); iterate. As an analyst: "Write a SQL query for monthly sales by region from table X with columns A, B, C" beats "help with SQL".
MediumWhat are hallucinations in LLMs and how do you mitigate them?
Confident but false outputs โ invented statistics, fake citations, wrong formulas. Mitigate: ground the model with RAG (retrieval of real documents), ask for sources, lower temperature for factual tasks, validate critical outputs (run the SQL, check the number), and human review. Analysts should treat LLM output as a smart draft, not truth.
HardWhat is RAG (Retrieval-Augmented Generation)?
Architecture that fixes an LLM's knowledge limits: user query โ retrieve relevant chunks from your documents (via embeddings + vector database) โ inject them into the prompt โ LLM answers grounded in your data. This is how "chat with your company docs/PDF" products work โ no retraining needed, answers stay current and citable.
HardWhat are embeddings? Why do analysts care?
Numeric vector representations of text/items where similar meanings sit close together โ "refund not received" โ "money not returned". Uses: semantic search, clustering customer feedback into themes, deduplication, recommendation, powering RAG. They let you do math on meaning.
EasyHow is AI changing the data analyst role? (common HR + tech question)
Balanced answer: AI accelerates the mechanical parts โ writing SQL/DAX drafts, cleaning scripts, chart suggestions, summarizing findings โ so analysts shift up the value chain: framing the right business questions, validating AI output, data quality, storytelling and decisions. "I use AI as a productivity multiplier, but I verify everything because I own the accuracy."
EasyWhat is the difference between AI, ML and Deep Learning?
Nested circles: AI = any technique making machines act intelligently โ ML = the subset that learns from data instead of hard-coded rules โ Deep Learning = the subset of ML using multi-layer neural networks (images, speech, LLMs). Every LLM is DL, every DL is ML, every ML is AI โ not vice versa.
Downloads & study PDFs
All Python, Machine Learning and AI PDFs are in the Resource Hub โ read every question bank online, right on the site.
Company-wise interview questions
Real questions asked at real companies โ click a company button to open its question set. Every question answered.
๐ข IPG Mediabrands โ asked questions with answers
EasyQ1. Explain your project?
Use the 6-step framework from the Projects tab: business problem โ data sources โ tools โ your process (cleaning, modeling, DAX) โ 2โ3 insights with numbers โ business impact. Keep it to 2 minutes.
MediumQ2. Power BI pipeline โ explain
End-to-end flow: Data sources โ Power Query (ETL: clean/transform) โ Data model (star schema, relationships) โ DAX measures โ Report visuals โ Publish to Power BI Service โ Scheduled refresh via Gateway โ Share via workspace/app to stakeholders.
EasyQ3. What is your file size in Power BI?
Give a realistic number: "Around 150โ400 MB .pbix for ~1โ2 million rows after removing unused columns." Add that you keep it small by dropping high-cardinality columns, aggregating where possible, and using incremental refresh for big fact tables.
EasyQ4. What visualizations did you use in Power BI?
Cards/KPIs for headline numbers, bar/column for category comparison, line for trends, matrix for detailed cross-tabs, map for regional view, slicers for filtering, plus drill-through pages and tooltips for detail. Justify each with its purpose.
EasyQ5. How to connect a database with Power BI?
Home โ Get Data โ choose the connector (SQL Server etc.) โ enter server + database โ pick Import or DirectQuery โ authenticate (Windows/DB credentials) โ select tables or paste a SQL query โ Load/Transform. For refresh in the Service, configure an On-premises Data Gateway.
MediumQ6. What is DAX? Types of DAX?
DAX (Data Analysis Expressions) is Power BI's formula language. Three usage types: Calculated columns (row-by-row, stored), Measures (aggregations at query time), Calculated tables. Function families: aggregation (SUM, AVERAGE), filter (CALCULATE, FILTER, ALL), time intelligence (TOTALYTD, SAMEPERIODLASTYEAR), logical, text, and relationship functions (RELATED).
MediumQ7. What DAX measures have you created?
Example set: Total Sales = SUM(Sales[Amount]); Profit Margin % = DIVIDE([Profit],[Total Sales]); Sales LY = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date])); YoY % = DIVIDE([Total Sales]-[Sales LY],[Sales LY]); running totals with TOTALYTD. Name only measures you can write on a whiteboard.
MediumQ8. Difference between VALUES and SELECTEDVALUE
VALUES(column) returns a table of the distinct values visible in the current filter context (can be many rows). SELECTEDVALUE(column, alt) returns a single value if exactly one value is selected, otherwise the alternate (or blank) โ perfect for showing a slicer's selection in a title.
HardQ9. Difference between FILTERS and FILTER? Which is faster?
FILTER(table, condition) is an iterator that scans a table row by row and returns a filtered table โ powerful but slower. FILTERS(column) just returns the values currently being directly filtered on a column. For performance, a simple boolean filter inside CALCULATE (e.g. Region="A") is faster than wrapping FILTER around a whole table, because it works on the column, not row-by-row.
HardQ10. PARALLELPERIOD vs SAMEPERIODLASTYEAR โ difference and required dimensions
Both need a proper Date dimension marked as a date table. SAMEPERIODLASTYEAR shifts the current selection exactly one year back, day-for-day. PARALLELPERIOD(dates, -1, YEAR) returns the full parallel period (whole previous year/quarter/month), ignoring partial selections โ so for "same dates last year" use SPLY; for "entire previous period" use PARALLELPERIOD.
HardQ11. Which is faster: SUM with FILTER(region='A') vs a simple region filter โ and how to handle empty age data?
The simple boolean filter โ CALCULATE(SUM(Sales[Amt]), Sales[Region]="A") โ is faster; it's translated into an efficient column filter, while FILTER(Sales, ...) iterates the whole table row by row. For empty age data: handle at source/Power Query (replace nulls with a default or "Unknown" bucket), or in DAX with COALESCE([Age], 0) / IF(ISBLANK(...)) depending on whether blank should mean zero or excluded.
MediumSQL Q1. What are window functions and their use cases?
Functions that compute over a "window" of related rows without collapsing them: ROW_NUMBER, RANK, DENSE_RANK, LEAD, LAG, SUM() OVER(). Use cases: rankings/top-N per group, running totals, comparing a row with the previous row (month-over-month), de-duplication with ROW_NUMBER.
MediumSQL Q2. Top 5 customers according to marks โ how to calculate?
SELECT * FROM (
SELECT customer, marks,
DENSE_RANK() OVER (ORDER BY marks DESC) AS rnk
FROM student
) t
WHERE rnk <= 5;
DENSE_RANK handles ties gracefully; use ROW_NUMBER if exactly 5 rows are needed regardless of ties.
EasySQL Q3. What will COUNT(*) from table abc return?
The total number of rows in the table โ including duplicates and rows containing NULLs (COUNT(*) never ignores NULL rows, unlike COUNT(column)).
EasySQL Q4. Difference between COUNT(*) and COUNT(1)?
No practical difference โ both count all rows including NULLs, and modern optimizers produce identical plans. The real distinction is with COUNT(column), which skips NULLs in that column.
๐ข Congesool โ asked questions with answers
EasyQ1. Explain your project
Same 6-step structure: problem โ data โ tools โ process โ insights โ impact. Tailor the domain if you know the company's clients.
MediumQ2. What DAX measures did you create in your project?
Total Sales, Profit %, YoY growth with SAMEPERIODLASTYEAR, rolling 3-month average with DATESINPERIOD, and Top-N ranking with RANKX โ pick 4โ5 you can write live.
MediumQ3. Difference between VALUES and SELECTEDVALUE
VALUES returns a table of distinct visible values; SELECTEDVALUE returns the single selected value or an alternate if multiple/none โ ideal for dynamic titles like "Sales for " & SELECTEDVALUE(Region[Name], "All Regions").
HardQ4. How did you optimize your Power BI dashboards?
Star schema, removed unused columns, measures instead of calculated columns, single-direction relationships, limited visuals per page, page-level filters, incremental refresh on the fact table, and verified with Performance Analyzer โ quote before/after load time if you can.
HardQ5. Explain how you implemented RLS in your project
Created roles in Modeling โ Manage Roles with a DAX rule, e.g. [Region] = USERPRINCIPALNAME() mapped via a user-region table; tested with "View As Role"; assigned members to roles in the Service. Mention dynamic RLS (one rule, user table) vs static roles.
HardQ6. Explain the TREATAS function
TREATAS(values, column) applies a set of values as a filter on a column as if a relationship existed โ the standard way to filter across tables with no physical relationship. Example: CALCULATE([Sales], TREATAS(VALUES(Budget[Region]), Sales[Region])).
HardQ7. SUM(sales, FILTER(region='A')) vs SUM with direct region filter โ which is faster?
The direct boolean filter inside CALCULATE is faster โ it filters the column via the storage engine, while FILTER() iterates row by row in the formula engine. Use FILTER only when the condition genuinely needs row context (comparing columns to each other).
๐ข TransUnion โ asked questions with answers
EasyQ1. What are the main 3 KPIs in your project?
Have three ready with definitions, e.g.: Total Revenue (SUM of sales), Profit Margin % (profit/revenue), YoY Growth % โ and one sentence on why each mattered to the business. Domain-fit KPIs (churn %, approval rate) are even better.
MediumQ2. Explain DAX which you created in your project
Walk through one measure end-to-end, e.g. YoY%: base measure โ CALCULATE with SAMEPERIODLASTYEAR โ DIVIDE for safe division โ why DIVIDE over "/" (handles divide-by-zero). Depth on one beats listing ten.
HardQ3. Explain where you used RLS in the project
Example: "Regional managers should see only their region โ I built dynamic RLS with a UserAccess table (email โ region), rule [Region] IN CALCULATETABLE(VALUES(UserAccess[Region]), UserAccess[Email] = USERPRINCIPALNAME()), tested via View As Role."
MediumSQL Q1. Count the number of commas in the string 'a,b,c,d,e'
SELECT LENGTH('a,b,c,d,e')
- LENGTH(REPLACE('a,b,c,d,e', ',', '')) AS comma_count;
-- SQL Server: use LEN() instead of LENGTH() โ returns 4
Classic trick: total length minus length without commas = number of commas.
MediumSQL Q2. Top 3 customers by month and revenue using a window function
SELECT * FROM (
SELECT month, customer, revenue,
DENSE_RANK() OVER (PARTITION BY month
ORDER BY revenue DESC) AS rnk
FROM sales
) t
WHERE rnk <= 3;
PARTITION BY month restarts the ranking every month โ top 3 per month.
MediumSQL Q3. Which window function did you use in your project and why?
Example answer: "ROW_NUMBER to de-duplicate records keeping the latest per customer, and LAG to compute month-over-month change โ both avoided messy self-joins and kept queries readable."
๐ข Scatter Pie (Tableau practical) โ asked questions with answers
EasyQ1. Explain your project and role as Tableau developer
Structure: business problem โ sources โ how you modeled/joined data โ dashboards built (name the charts) โ interactivity (filters, actions, parameters) โ performance work โ impact. Emphasize the developer parts: calculations, LODs, publishing, refresh schedules.
EasyQ2. Show me a pie chart (practical)
Drag the dimension to Color and the measure to Angle on the Marks card (set mark type to Pie) โ or select dimension + measure and hit the pie in Show Me. Add labels (dimension + measure, quick table calc โ percent of total).
MediumQ3. Drag customer name to Rows and show the last name in another column (practical)
Create a calculated field: Last Name = TRIM(SPLIT([Customer Name], " ", -1)) โ SPLIT with index โ1 takes the last token. Drag it next to Customer Name on Rows.
MediumQ4. Show me last month's last day (practical)
Calculated field: DATEADD('day', -1, DATETRUNC('month', TODAY())) โ truncate today to the 1st of this month, minus one day = last day of previous month. Use it in a filter or as a reference.
HardQ5. Explain how you did optimization in your Tableau project
Moved live connections to extracts (aggregated, filtered), reduced quick filters and replaced "Only relevant values" where costly, cut marks per view, replaced heavy table calcs with LODs or source-side logic, and verified with Performance Recording โ mention a before/after if possible.
HardQ6. Explain RLS โ how did you implement it in the project?
Entitlement-table approach: joined a UserAccess table, data source filter USERNAME() = [User Email]; published with the filter locked so every viewer sees only their rows. Contrast with manual user filters and say why the calculated approach scales.
MediumPower BI Q1. Limitations of DirectQuery?
Slower visuals (every interaction = live query), limited Power Query transformations, several DAX functions restricted or slow (time intelligence needs a date table), 1-million-row limit per query result, no calculated tables on DQ sources, and total dependence on source database performance.
MediumPower BI Q2. Write a running total calculation
Running Total =
CALCULATE(
SUM(Sales[Amount]),
FILTER(
ALLSELECTED('Date'[Date]),
'Date'[Date] <= MAX('Date'[Date])
)
)
Or simply TOTALYTD(SUM(Sales[Amount]), 'Date'[Date]) for a year-bounded running total.
EasyPower BI Q3. Write a DAX for Dealer Revenue
Dealer Revenue =
CALCULATE(
SUM(Sales[Amount]),
Sales[Channel] = "Dealer"
)
Pattern: base aggregation + a filter on the channel/segment column inside CALCULATE.
MediumPower BI Q4. Cumulative sum DAX
Cumulative Sales =
CALCULATE(
SUM(Sales[Amount]),
FILTER(ALL('Date'[Date]), 'Date'[Date] <= MAX('Date'[Date]))
)
ALL removes the date filter, then we re-filter to "all dates up to the current one" โ the classic cumulative pattern.
MediumPower BI Q5. DAX for percentage of total
% of Total =
DIVIDE(
SUM(Sales[Amount]),
CALCULATE(SUM(Sales[Amount]), ALL(Sales))
)
Numerator respects current filters; denominator ignores them via ALL โ format as percentage. Use ALLSELECTED instead of ALL to respect slicer selections.
๐ข ZS Associates โ asked questions with answers
HardQ1. Table x has (1,1,1,1,1) and table z has (1,1,1). Output of LEFT / RIGHT / INNER / FULL join?
Every row of x matches every row of z (all values are 1), so joins produce a cartesian match:
- INNER JOIN: 5 ร 3 = 15 rows
- LEFT JOIN: every x row has matches โ 15 rows
- RIGHT JOIN: every z row has matches โ 15 rows
- FULL JOIN: no unmatched rows on either side โ 15 rows
This is one of the most famous trick questions โ remember: duplicate join keys multiply.
EasyQ2. Difference between UNION and UNION ALL?
UNION combines results and removes duplicates (implicit sort/dedup cost); UNION ALL keeps everything, so it's faster โ use UNION ALL whenever duplicates are impossible or acceptable.
EasyQ3. Difference between TRUNCATE and DELETE?
DELETE removes rows one by one, supports WHERE, is fully logged and can be rolled back; TRUNCATE instantly removes all rows, keeps the structure, resets identity, minimal logging, no WHERE. TRUNCATE is DDL-like and much faster for emptying a table.
๐ข Goldman Sachs โ asked questions with answers
MediumQ1. What does filter context in DAX mean?
Filter context is the set of filters active on a calculation at evaluation time โ coming from slicers, rows/columns of visuals, page filters and CALCULATE. The same measure returns different values in each cell because each cell has a different filter context. CALCULATE is the function that modifies filter context.
HardQ2. How to implement Row-Level Security (RLS) in Power BI?
Modeling โ Manage Roles โ create a role with a DAX rule (e.g. [Region] = "West" for static, or [Email] = USERPRINCIPALNAME() against a user table for dynamic RLS) โ test with View As Role โ publish โ in the Service, assign users/groups to the role under dataset Security.
EasyQ3. Describe different types of filters in Power BI
Visual-level (one visual), page-level (all visuals on a page), report-level (whole report), drill-through filters (carried to a detail page), slicers (user-facing), and cross-filtering between visuals. Plus filters inside DAX via CALCULATE.
HardQ4. Difference between ALL and ALLSELECTED in DAX?
ALL(table/column) removes every filter โ grand total regardless of slicers. ALLSELECTED() removes only the filters inside the visual but respects outside selections (slicers/page filters). % of total with ALL = share of everything; with ALLSELECTED = share of what the user selected.
EasyQ5. Total sales for a specific product using DAX?
Laptop Sales =
CALCULATE(
SUM(Sales[Amount]),
Products[ProductName] = "Laptop"
)EasySQL Q1. Average salary department-wise
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;MediumSQL Q2. Employee name and manager name using self-join (emp_id, name, manager_id)
SELECT e.name AS employee,
m.name AS manager
FROM employees e
LEFT JOIN employees m ON e.manager_id = m.emp_id;
LEFT JOIN keeps the CEO (manager_id NULL) in the result with a NULL manager.
MediumSQL Q3. Newest joinee in every department (LEAD/LAG family)
SELECT * FROM (
SELECT name, department, join_date,
ROW_NUMBER() OVER (PARTITION BY department
ORDER BY join_date DESC) AS rn
FROM employees
) t
WHERE rn = 1;
ROW_NUMBER partitioned by department, ordered by join_date descending โ rn = 1 is the newest joinee per department.
EasyPython Q1. Create a dictionary, add, modify, and print in alphabetical order of keys
d = {"banana": 2, "apple": 5}
d["cherry"] = 7 # add
d["apple"] = 10 # modify
for k in sorted(d): # alphabetical keys
print(k, d[k])EasyPython Q2. Unique values in a list and their counts
from collections import Counter
nums = [1, 2, 2, 3, 3, 3, 4]
counts = Counter(nums)
for value, cnt in counts.items():
print(value, "appears", cnt, "times")EasyPython Q3. Find and print duplicate values with their counts
from collections import Counter
nums = [1, 2, 2, 3, 3, 3, 4]
for value, cnt in Counter(nums).items():
if cnt > 1:
print(value, "is duplicated", cnt, "times")๐ข Deloitte โ asked questions with answers
MediumQ1. Explain step-by-step how you will create a sales dashboard from scratch
- Requirements: meet stakeholders โ which KPIs, which grain, who will use it.
- Data: connect sources (SQL/Excel), profile the data.
- Clean: Power Query โ types, duplicates, nulls, unpivot targets.
- Model: star schema โ Sales fact + Date/Product/Customer/Region dims, mark the date table.
- DAX: Total Sales, Profit %, YoY, YTD measures.
- Design: KPI cards on top, trends middle, detail matrix below; slicers; drill-through; consistent theme.
- Validate: tie numbers to source reports.
- Deploy: publish, gateway + scheduled refresh, RLS, share via app; collect feedback and iterate.
HardQ2. Explain how you can optimize a slow Power BI report
Layered answer: data model (star schema, drop unused/high-cardinality columns, integer keys, single-direction relationships) โ DAX (measures over calculated columns, avoid row-by-row FILTER when a boolean filter works) โ source (query folding, incremental refresh, aggregations) โ report (fewer visuals, page filters, reduce interactions) โ diagnose with Performance Analyzer and fix the top offenders first.
EasyQ3. Explain any 5 chart types and their uses
- Bar/Column: compare values across categories (sales by region).
- Line: trends over time (monthly revenue).
- Pie/Donut: composition โ parts of a whole, few categories.
- Scatter: relationship between two measures, spotting outliers (discount vs profit).
- Matrix/Heatmap: values across two dimensions with conditional color (region ร month sales intensity).
MediumSQL Q1. RANK() vs DENSE_RANK() vs ROW_NUMBER() with example
For salaries 100, 100, 90: ROW_NUMBER โ 1,2,3 ยท RANK โ 1,1,3 (gap) ยท DENSE_RANK โ 1,1,2 (no gap).
SELECT name, salary,
ROW_NUMBER() OVER (ORDER BY salary DESC) AS rn,
RANK() OVER (ORDER BY salary DESC) AS rnk,
DENSE_RANK() OVER (ORDER BY salary DESC) AS drnk
FROM employee;MediumSQL Q2. Find the nth highest salary from Employee
SELECT salary FROM (
SELECT salary,
DENSE_RANK() OVER (ORDER BY salary DESC) AS rnk
FROM employee
) t
WHERE rnk = @n; -- e.g. 3 for 3rd highestHardSQL Q3. All employees under a manager, including subordinates at any level (hierarchy)
WITH team AS (
SELECT EmpID, ManagerID
FROM employee
WHERE ManagerID = @manager_id -- direct reports
UNION ALL
SELECT e.EmpID, e.ManagerID
FROM employee e
JOIN team t ON e.ManagerID = t.EmpID -- their reports, recursively
)
SELECT * FROM team;
A recursive CTE โ the anchor gets direct reports; the recursive part walks down the tree until no more levels.
HardSQL Q4. Cumulative salary department-wise for employees who joined in the last 30 days
SELECT Dept, EmpID, JoinDate, Salary,
SUM(Salary) OVER (PARTITION BY Dept
ORDER BY JoinDate
ROWS UNBOUNDED PRECEDING) AS cumulative_salary
FROM employee
WHERE JoinDate >= DATEADD(DAY, -30, GETDATE());HardSQL Q5. Top 2 customers by order amount per product category, handling ties
SELECT * FROM (
SELECT CustomerID, ProductCategory, OrderAmount,
DENSE_RANK() OVER (PARTITION BY ProductCategory
ORDER BY OrderAmount DESC) AS rnk
FROM customer
) t
WHERE rnk <= 2;
DENSE_RANK keeps tied customers together โ if two tie at rank 1, both appear (that's "handling ties appropriately").
EasyBehavioral Q1. Why do you want to become a data analyst and why this company?
Formula: genuine origin story (what pulled you to data) + proof of commitment (projects/upskilling) + 1โ2 researched, specific reasons for the company (their domain, clients, culture). Avoid generic lines like "big brand name".
MediumBehavioral Q2. A difficult task with tight deadlines โ how did you handle it?
Answer in STAR: Situation (context) โ Task (what was needed by when) โ Action (prioritized, broke work down, communicated early, automated a step) โ Result (delivered on time + a number). Pick a real story; interviewers probe details.
๐ข TCS โ asked questions with answers
MediumQ1. Write a DAX to calculate the running total monthly
Running Total Monthly =
CALCULATE(
SUM(Sales[Amount]),
FILTER(
ALLSELECTED('Date'),
'Date'[Date] <= MAX('Date'[Date])
)
)
Or year-bounded: TOTALYTD(SUM(Sales[Amount]), 'Date'[Date]).
EasyQ2. Explain the bookmark in Power BI
A bookmark captures the state of a page โ filters, slicers, visual visibility, sort. Combined with buttons and the Selection pane, bookmarks build toggle views (chart โ table), pop-up filter panels, and guided story navigation. Create via View โ Bookmarks โ Add.
MediumQ3. Difference between SUM and SUMX?
SUM(column) aggregates one existing column. SUMX(table, expression) is an iterator โ evaluates the expression row by row then sums, needed when the value must be computed per row first, e.g. SUMX(Sales, Sales[Qty] * Sales[Price]). SUM is faster; use SUMX only when row-level math is required.
HardQ4. Difference between ALL and ALLSELECTED?
ALL ignores every filter (true grand total); ALLSELECTED ignores filters inside the visual but respects user selections (slicers). % of grand total โ ALL; % of the user's current selection โ ALLSELECTED.
MediumSQL Q1. Difference between clustered and non-clustered index?
Clustered: defines the physical order of table rows โ one per table (usually the primary key); the table is the index. Non-clustered: a separate structure with pointers to rows โ many allowed per table; great for frequent WHERE/JOIN columns. Analogy: clustered = dictionary order, non-clustered = index at the back of a book.
MediumSQL Q2. Difference between CTE and Views?
CTE: temporary named result inside one query โ vanishes after execution, supports recursion, improves readability. View: a saved query object in the database โ reusable across queries/users, can have permissions, can be indexed (materialized). Rule: one-off logic โ CTE; reusable logic โ view.
MediumSQL Q3. For 'A,B,B,C,C,C,D' give ROW_NUMBER, DENSE_RANK and RANK
| Value | ROW_NUMBER | RANK | DENSE_RANK |
|---|---|---|---|
| A | 1 | 1 | 1 |
| B | 2 | 2 | 2 |
| B | 3 | 2 | 2 |
| C | 4 | 4 | 3 |
| C | 5 | 4 | 3 |
| C | 6 | 4 | 3 |
| D | 7 | 7 | 4 |
ROW_NUMBER never repeats; RANK repeats and skips; DENSE_RANK repeats without gaps.
EasySQL Q4. Query for 2nd highest salary
SELECT MAX(salary) FROM employee
WHERE salary < (SELECT MAX(salary) FROM employee);
-- or
SELECT DISTINCT salary FROM employee
ORDER BY salary DESC LIMIT 1 OFFSET 1;๐ข EATON โ asked questions with answers
EasyL1-1. Difference between star and snowflake schema
Star: denormalized dimensions directly around the fact table โ fewer joins, faster, BI-friendly. Snowflake: dimensions normalized into sub-tables โ saves storage, more joins, used for very large dimensions.
MediumL1-2. How complex queries have you written in SQL?
Describe your genuinely hardest query: multi-CTE pipeline, window functions for ranking/running totals, self-join for hierarchy, conditional aggregation with CASE โ walk through one real example and why it was complex.
EasyL1-3. Which functions do you use most in SQL?
Honest analyst answer: aggregate functions (SUM/COUNT/AVG) with GROUP BY, JOINs daily, window functions (ROW_NUMBER, DENSE_RANK, LAG), CASE WHEN, date functions (DATEADD/DATEDIFF), string functions (CONCAT, SUBSTRING, TRIM) and COALESCE for nulls.
EasyL1-4. In which domain have you worked?
State your project domain (retail, banking, healthcare, manufacturingโฆ) and add one domain-specific metric you handled (e.g. inventory turnover for retail) โ that one detail makes it credible.
MediumL1-5. How to normalize data?
Apply normal forms step by step: 1NF โ atomic values, no repeating groups; 2NF โ remove partial dependencies on a composite key; 3NF โ remove transitive dependencies (non-key depending on non-key). Result: each fact stored once, linked via keys.
EasyL1-6. Difference between normalized and denormalized data
Normalized: many small related tables, no redundancy โ best for OLTP writes and integrity. Denormalized: merged wider tables with some duplication โ fewer joins, faster reads, standard for analytics/warehouses (star schema is deliberate denormalization).
EasyL1-7. Do you know Power Automate and Power Apps?
Ideal answer: "Working knowledge โ Power Automate for flows like refresh-completion alerts or emailing reports, Power Apps for simple data-entry apps that write back to a source Power BI reads. I integrate them with Power BI within the Power Platform." Be honest about depth.
HardL2-1. What are the types of dimensions?
Conformed (shared across facts, e.g. Date), Slowly Changing (attributes change over time โ SCD types), Junk (mixed low-cardinality flags), Degenerate (e.g. invoice number stored in the fact), Role-playing (one Date dim used as Order/Ship/Delivery date).
HardL2-3. Difference between data mart and dataflow
Data mart: a subject-focused slice of the warehouse (Sales mart) for one department. In Power BI, Dataflow = reusable cloud Power Query ETL (entities stored in the service), while Power BI's Datamart feature = dataflow + managed SQL database + dataset in one self-service package.
HardL2-4. Have you applied dynamic RLS? Which DAX function?
Yes โ dynamic RLS uses USERPRINCIPALNAME() (or USERNAME()) in the role rule, matched against a user-access table: [Email] = USERPRINCIPALNAME(). One rule serves every user via the mapping table.
HardL2-5. What is SCD and its types? Explain briefly
Slowly Changing Dimensions โ how dimension attribute changes are stored: Type 0 never change; Type 1 overwrite (no history); Type 2 add a new row with start/end dates + current flag (full history โ most used); Type 3 previous-value column (limited history); higher types combine these.
๐ข Virtusa Consulting โ asked questions with answers
MediumSQL 1. How do you calculate a running total in SQL?
SELECT order_date, amount,
SUM(amount) OVER (ORDER BY order_date
ROWS UNBOUNDED PRECEDING) AS running_total
FROM orders;MediumSQL 2. How can you retrieve last year's revenue? Which function?
SELECT SUM(amount) AS last_year_revenue
FROM orders
WHERE YEAR(order_date) = YEAR(GETDATE()) - 1;
-- or with LAG for a year-over-year table:
SELECT yr, revenue,
LAG(revenue) OVER (ORDER BY yr) AS prev_year_revenue
FROM yearly_sales;MediumSQL 3. How do you perform period comparison in SQL or BI tools?
SQL: aggregate per period and use LAG() to bring the previous period onto the same row, then compute the difference/%. Power BI: time-intelligence DAX โ SAMEPERIODLASTYEAR, DATEADD, PARALLELPERIOD against a proper date table.
MediumSQL 4. Explain the use of LEAD and LAG functions
They read another row's value without a self-join: LAG(x) = previous row, LEAD(x) = next row (per ORDER BY, optionally per PARTITION). Classic uses: month-over-month change, days between consecutive orders, comparing a row with the next event.
EasySQL 5โ6. Filter/sort top 10 records based on a metric field
SELECT TOP 10 * FROM sales ORDER BY revenue DESC; -- SQL Server
SELECT * FROM sales ORDER BY revenue DESC LIMIT 10; -- MySQL/Postgres
For top 10 per group, use ROW_NUMBER() OVER (PARTITION BY group ORDER BY revenue DESC) and filter โค 10.
MediumSQL 7. Current date sales compared with last year's sales
SELECT
SUM(CASE WHEN CAST(order_date AS DATE) = CAST(GETDATE() AS DATE)
THEN amount END) AS today_sales,
SUM(CASE WHEN CAST(order_date AS DATE) =
CAST(DATEADD(YEAR,-1,GETDATE()) AS DATE)
THEN amount END) AS same_day_last_year
FROM orders;HardSQL 8. Is rollup possible using grouping and aggregation?
Yes โ GROUP BY ROLLUP(region, category) produces subtotals per region and a grand total in one query; CUBE gives all combinations; GROUPING() identifies subtotal rows.
EasySQL 9. How do you calculate SUM(X) and sum of differences?
SELECT SUM(x) AS total_x,
SUM(x - y) AS total_difference -- = SUM(x) - SUM(y)
FROM t;HardSQL 10. Difference between ALL and ALLEXCEPT (DAX)?
ALL removes filters from an entire table/column. ALLEXCEPT(table, col1โฆ) removes all filters except the listed columns โ e.g. total per region ignoring everything else: CALCULATE(SUM(Sales[Amt]), ALLEXCEPT(Sales, Sales[Region])).
EasySQL 11. Explain joins and constraints in SQL
Joins: INNER (matches only), LEFT/RIGHT (keep one side), FULL (both), CROSS (cartesian), SELF (table with itself). Constraints: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT โ rules that protect data integrity.
EasySQL 12. What is a temporary table?
A table that lives only for the session (#temp in SQL Server) or transaction โ used to store intermediate results reused across multiple statements, e.g. staging a filtered dataset before several analyses.
MediumSQL 13. How do you delete duplicate records from a table?
WITH ranked AS (
SELECT id, ROW_NUMBER() OVER (
PARTITION BY email ORDER BY id) AS rn
FROM customers
)
DELETE FROM customers
WHERE id IN (SELECT id FROM ranked WHERE rn > 1);MediumSQL 14. Difference between a CTE and a View?
CTE โ temporary, exists only inside one query, supports recursion. View โ a stored, reusable query object with permissions; indexed views can even persist results. One-off readability โ CTE; shared reusable logic โ View.
HardSQL 15. A stored procedure runs for over an hour โ how do you reduce execution time?
- Get the execution plan; find scans, spills and heavy operators.
- Add/repair indexes on join/filter columns; update statistics.
- Replace cursors/row-by-row logic with set-based operations.
- Break giant queries into indexed temp-table steps; filter early; remove SELECT *.
- Check parameter sniffing (OPTION(RECOMPILE) / local variables), blocking and tempdb pressure.
MediumPBI 1. What is Mixed (Composite) Mode in Power BI?
A model that combines Import and DirectQuery sources: small dimensions imported for speed, huge fact tables on DirectQuery for freshness, with dual-storage tables bridging both. Best-of-both approach for big data.
MediumPBI 2. Two tables โ one updates dynamically, the other stays static?
Use a composite model: the dynamic table on DirectQuery (always current) and the static one on Import. Alternative: both Import but exclude the static table from refresh ("Include in report refresh" off in Power Query).
HardPBI 3. In MS Fabric, DirectQuery vs Direct Lake?
DirectQuery sends live SQL to the source per interaction โ always fresh, slower. Direct Lake (Fabric) reads Delta/Parquet files in OneLake directly into the VertiPaq engine โ near-import speed without copying/refreshing data. Direct Lake โ import performance + DirectQuery freshness.
MediumPBI 4. Import vs DirectQuery โ which is better, in what scenarios?
Import is better for most reports: fastest visuals, full DAX/Power Query. DirectQuery when data is too large to import, must be real-time, or must stay in the source for compliance. Composite when you need both.
HardPBI 5. Explain the VertiPaq engine
Power BI's in-memory columnar storage engine behind Import mode: stores data column-wise, heavily compressed (dictionary + run-length encoding), scans only needed columns โ that's why imported models with fewer, low-cardinality columns fly.
MediumPBI 6. What is cross-filter direction?
A relationship setting: Single โ filters flow one way (dimension โ fact; the recommended default) or Both โ filters flow both ways (needed for some many-to-many cases, but risks ambiguity and slowness โ use sparingly).
MediumModel 1. Customer linked to sales, each customer belongs to a region โ model it?
Star schema: Region (1) โ Customer (many) as a snowflaked arm, or better flatten region attributes into the Customer dimension โ Customer (1) โ Sales (many). Filters then flow Region โ Customer โ Sales naturally.
EasyModel 2. Count of distinct products sold?
Distinct Products Sold = DISTINCTCOUNT(Sales[ProductID])In SQL: COUNT(DISTINCT product_id). In DAX, DISTINCTCOUNT on the fact table's product key counts only products that actually appear in sales.
HardModel 3. Sales linked to Products but no direct relationship โ how to handle?
Options: create the relationship on a shared key if one exists; use a bridge table for many-to-many; or filter virtually in DAX with TREATAS(VALUES(Products[ID]), Sales[ProductID]) when a physical relationship isn't possible.
Data Analyst resume guide
Best practices for writing a Data Analyst & Data Scientist resume that passes ATS โ straight from my Medium guide, with free downloadable sample resumes.
What is an ATS-friendly resume?
When a resume is made to pass through Applicant Tracking Systems (ATS) โ programs used by businesses to scan, arrange, and filter resumes according to predetermined standards before a human recruiter ever sees them โ it is said to be ATS-friendly. If your resume can't be read by the software, it gets rejected before anyone reads it.
The perfect ATS-friendly resume for freshers
๐ฏ Clear and focused
- Keep it simple: clean formatting and concise content.
- Focus on what matters: highlight essential information without unnecessary details.
๐ฑ Show potential
- Highlight projects & internships: hands-on experiences that demonstrate your capabilities.
- Emphasize skills and growth: show how your skills have developed over time.
โ๏ธ Craft a summary
- Showcase key skills: a brief summary of your abilities relevant to the job role.
- Align with the job role: tailor the summary to the specific role you're applying for.
๐ ๏ธ Skills and tools
- List relevant skills: technical, soft, and domain-specific.
- Show readiness to learn: mention your eagerness to pick up new tools and technologies.
๐ Validate with evidence
- Include links: portfolios, projects, and certifications.
- Share real examples: achievements with measurable outcomes.
๐ฏ Tailor for each job
- Customize per role: modify your resume for each job description.
- Match keywords: align your content with the skills mentioned in the posting.
Sample resume โ free download
Download this ATS-friendly sample resume plus 10+ more real resume samples (PDF/Word) โ different formats, for both freshers and experienced candidates:
โฌ Download resume samples from GitHubOpen the repo, click any file, and use the "Download raw file" button to save it.
Free tools to create your resume
- Overleaf โ powerful editor with excellent templates (best for tech resumes) ยท overleaf.com
- Resume Genius โ everything from job application to job offer ยท resumegenius.com
- Resume.io โ AI analyzes your resume and suggests improvements ยท resume.io
- Enhancv โ recruiter-approved professional templates ยท enhancv.com
- Rezi โ keyword scanner, ATS optimization, customizable templates ยท rezi.ai
- Zety โ AI-powered CV builder, professional look in minutes ยท zety.com
- CV Compiler โ compares your CV with the job description, personalized feedback ยท cvcompiler.com
- VisualCV โ polished, professional CVs effortlessly ยท visualcv.com
- Resume Now โ quick guided resume builder ยท resume-now.com
- Careerflow.ai โ AI career toolkit with resume review ยท careerflow.ai
Naukri profile optimization
EasyThe ideal data analyst resume structure (1 page)
- Header: name, phone, email, LinkedIn, GitHub/portfolio link
- Summary: 2 lines max โ role + top skills + one achievement
- Skills: grouped โ Languages (SQL, Python) ยท BI (Power BI, Tableau) ยท Tools (Excel, Power Query)
- Projects / Experience: 2โ3 entries, each with bullet points that carry numbers
- Education & certifications
One page for freshers and up to 3 years experience. No photo, no "objective" paragraph, no ratings bars for skills.
MediumHow to write project bullets that get interviews
Formula: Action verb + what you did + tool + quantified result.
- โ "Worked on sales dashboard in Power BI"
- โ "Built an interactive Power BI sales dashboard on 200K+ records, automating weekly reporting and cutting manual effort by 4 hours/week"
- โ "Wrote SQL queries (joins, CTEs, window functions) to analyze customer churn, identifying 3 segments with 25% higher drop-off"
MediumHow to make your resume ATS-friendly
- Simple single-column layout โ no tables, text boxes, icons or graphics
- Standard headings: "Experience", "Projects", "Skills", "Education"
- Mirror keywords from the job description (if JD says "data visualization", your resume should too)
- Save as PDF with a clean filename:
Mahendra_Singh_Data_Analyst.pdf - Test yourself: copy-paste the PDF into Notepad โ if it's readable, ATS can read it too
EasyNaukri profile optimization โ get more recruiter calls
- Headline: role + skills, not "seeking opportunities" โ e.g. "Data Analyst | SQL ยท Power BI ยท Excel ยท Python"
- Key skills section: add all 15 allowed โ recruiters search by these exact tags
- Update daily: even a tiny edit bumps you up in recruiter search results (freshness matters in Naukri's algorithm)
- Fill 100% of the profile including expected CTC and notice period โ incomplete profiles get filtered out
- Upload the same ATS-friendly resume PDF
EasyShould you mention skills you only know basics of?
Rule: everything on your resume is fair game for questioning. If Python is listed, expect a pandas question. Either prepare basic answers for every listed skill, or remove it. A short honest skill list beats a long risky one.
Business Analyst interview guide
Scenario-based questions with the complete detailed answers from my Medium guides, plus fundamentals โ everything you need for a BA interview.
Core BA questions โ full detailed answers (Q1โQ12)
EasyQ1. What is the role of a Business Analyst in a project?
A Business Analyst serves as a vital bridge between business stakeholders and technical teams. Key responsibilities include:
- Requirements Management: analyzing business processes, gathering requirements, and translating them into detailed functional specifications
- Stakeholder Alignment: ensuring project deliverables align with business objectives and stakeholder expectations
- Solution Design: collaborating with technical teams to design solutions that address business challenges
- Value Delivery: ensuring the project achieves measurable business outcomes and ROI
The BA ensures everyone speaks the same language โ translating business needs into technical requirements and technical constraints into business implications.
EasyQ2. What are the key skills required for a Business Analyst?
Technical skills: requirements gathering and documentation (BRD, FRD, User Stories); data analysis tools โ SQL, Excel, Power BI, Tableau; process modeling โ BPMN, UML, Visio; project tools โ JIRA, Confluence, Azure DevOps; basic understanding of SDLC.
Business skills: analytical thinking and problem-solving, stakeholder management and negotiation, domain knowledge (finance, healthcare, retailโฆ), strategic thinking and business acumen.
Soft skills: excellent written and verbal communication, active listening and interviewing techniques, adaptability and continuous learning mindset, attention to detail, facilitation and conflict resolution.
EasyQ3. Difference between a Business Analyst and a Project Manager?
While a Project Manager oversees project execution and ensures successful delivery, a Business Analyst concentrates on understanding business needs, defining requirements, and ensuring the solutions align with those needs and objectives.
The BA ensures we're building the right thing, while the PM ensures we're building it the right way.
MediumQ4. How do you gather requirements from stakeholders?
I use a multi-method approach tailored to the project context:
Primary techniques:
- Stakeholder interviews โ one-on-one or group sessions to understand pain points and goals
- Workshops & JAD sessions โ collaborative sessions to gather and validate requirements collectively
- Surveys & questionnaires โ for input from large user groups
- Document analysis โ reviewing existing documentation, reports, process flows
- Observation & job shadowing โ watching users in their actual work environment
Supporting techniques: prototyping (mockups/wireframes for visual validation), use cases & user stories, focus groups, process mapping (As-Is vs To-Be).
Best practices: always validate understanding with stakeholders, prioritize with MoSCoW, document everything and get sign-off, use the "5 Whys" to uncover root causes.
MediumQ5. What is a Use Case, and how is it useful in requirements gathering?
A Use Case describes how a user (actor) interacts with a system to achieve a specific goal โ capturing functional requirements from the end-user perspective.
Components: Actor ยท Preconditions ยท Main Flow (happy path) ยท Alternative Flows ยท Postconditions.
Example โ E-commerce checkout: Actor: Customer. Precondition: items in cart, logged in. Main flow: click Checkout โ order summary โ enter shipping address โ select payment โ system processes payment โ confirms order and emails. Alternative flow: payment fails โ error and retry. Postcondition: order placed, inventory updated, confirmation sent.
Why valuable: captures requirements from the user's perspective, identifies system interactions and boundaries, facilitates business-tech communication, serves as the basis for test cases, and helps discover missing requirements.
HardQ6. Explain SWOT analysis and its relevance to business analysis (with real example)
SWOT evaluates Strengths (internal advantages), Weaknesses (internal limitations), Opportunities (external factors to leverage) and Threats (external challenges).
Relevance to BA: assess project feasibility and risks, identify where technology addresses weaknesses or leverages strengths, make data-driven recommendations, support build-vs-buy decisions, communicate project context.
Real example โ telecom losing 15% customers annually:
- Strengths: large customer database, strong enterprise brand, established analytics team
- Weaknesses: 48-hour service response, unresolved complaints, fragmented customer data
- Opportunities: AI/ML churn prediction, proactive retention campaigns, personalized offers, chatbot self-service
- Threats: competitors' unlimited plans at lower prices, new entrants with better digital experience, regulatory changes
BA actions: leveraged customer data to build a predictive churn model, designed automated complaint-resolution workflow, implemented AI-powered retention, built a competitive analysis dashboard.
Result: churn reduced from 15% to 12% in 6 months, saving $2M annually.
MediumQ7. What is the importance of a Business Requirements Document (BRD)?
A BRD is a formal document capturing what the business needs from a project โ the foundation for all subsequent work.
Key components: executive summary, business objectives, project scope (in/out), stakeholder analysis, business requirements (functional & non-functional), assumptions & constraints, success criteria & KPIs, dependencies & risks.
Why critical:
- Clarity & alignment โ everyone shares the same understanding; documents the "why"
- Scope management โ clear boundaries prevent scope creep; baseline for change management
- Foundation for development โ input for the FRD, solution design and architecture
- Validation & testing โ provides UAT criteria
- Risk mitigation โ early requirements reduce costly rework
- Legal & compliance โ official record for audits in regulated industries
- Resource planning โ enables accurate budget/timeline estimation
Example: in a healthcare EHR implementation, the BRD documented HIPAA compliance requirements upfront, preventing a potential $50K rework.
HardQ8. How do you prioritize requirements when they conflict with each other?
Frameworks:
- MoSCoW: Must-have (project fails without) / Should-have / Could-have / Won't-have (this phase)
- Kano model: Basic needs (absence causes dissatisfaction) / Performance needs (more = better) / Excitement needs (unexpected delight)
- Value vs Effort matrix: prioritize High-Value-Low-Effort first
Process: understand the conflict's root cause โ align with business goals โ quantify impact with data โ facilitate stakeholder discussion โ apply the framework โ document the decision โ roadmap deferred items.
Real example โ Sales analytics dashboard: Sales Ops wanted real-time revenue tracking; Marketing wanted campaign attribution; budget allowed one. Real-time revenue affected 50 sales leaders daily (Must-Have, basic need for Q4 planning); attribution affected 10 marketers quarterly (Should-Have). Decision: real-time revenue in Phase 1, attribution in Phase 2 (8 weeks later). Outcome: both delivered, no stakeholder dissatisfaction.
MediumQ9. Describe Agile methodology and the BA's role in it (with real example)
Agile is an iterative, incremental approach emphasizing collaboration over rigid processes, working software over exhaustive documentation, customer feedback over contract negotiation, and responding to change over a fixed plan. Frameworks: Scrum (2โ4 week sprints; PO, Scrum Master, Dev Team), Kanban (continuous flow, WIP limits), SAFe (scaled enterprise).
BA's sprint-level activities: backlog refinement (epics โ user stories), writing stories with acceptance criteria (As aโฆ I wantโฆ So thatโฆ), sprint planning clarifications, daily standups, sprint review validation, retrospectives.
Real example โ Agile CRM project: instead of 6 months of upfront requirements + 12 months development, we delivered: Sprints 1โ2 customer profile module, 3โ4 interaction history, 5โ6 live chat, 7โ8 reporting dashboard.
Benefits realized: sales team used the basic CRM after Sprint 2 (3 weeks vs 18 months), requirements evolved from real usage (mobile support added after Sprint 4 feedback), rework reduced by 40%, stakeholders saw progress every 2 weeks.
MediumQ10. What are common data modeling techniques used by Business Analysts?
- Entity-Relationship Diagrams (ERDs): entities and relationships โ database design (Customer โ Orders one-to-many)
- Data Flow Diagrams (DFDs): how data moves between processes, entities and stores; Context (Level 0) down to detailed levels
- UML: class diagrams (structure), sequence diagrams (interactions over time), activity diagrams (process flow), use case diagrams
- Logical vs Physical models: business view (technology-agnostic) vs technical implementation (tables, types, indexes)
- Star/Snowflake schemas: warehouse design โ fact tables (metrics) + dimension tables (context) for BI
When used: requirements phase (ERD/DFD for current state), design phase (UML for proposed solutions), data migration mapping, integration projects.
Example: in an e-commerce project I created an ERD of Customer, Order, Product and Payment entities that guided the database schema and helped QA understand test data dependencies.
MediumQ11. Can you explain the concept of Gap Analysis? (with real example)
Gap Analysis identifies the difference between the current state (As-Is) and the desired future state (To-Be): "Where are we now, where do we want to be, and what's missing?"
Framework: define As-Is (processes, metrics, pain points) โ define To-Be (goals, success criteria) โ identify gaps (process, technology, people, data, compliance) โ analyze impact and effort โ develop an action plan and roadmap.
Real example โ insurance company on a 20-year-old claims system:
- As-Is: manual claims entry (2โ3 days), no external integrations, paper documents, limited reporting, non-compliant with new privacy rules
- To-Be: automated same-day claims, real-time hospital/pharmacy integration, digital documents with OCR, customer self-service portal, full compliance
Outcome: prioritized high-impact gaps for Phase 1, 18-month roadmap, claims processing time reduced 60%, 100% regulatory compliance.
Deliverables: gap matrix, impact assessment, prioritization matrix, recommendations, implementation roadmap.
MediumQ12. How do you handle scope creep during a project? (with real example)
All changes go through a formal change request process: assess impact on timeline and budget, and present options to stakeholders for approval.
Real example: During an e-commerce platform project (16-week timeline, $250K budget), the Marketing Director requested a product recommendation engine mid-project. Instead of immediately agreeing, I:
- Conducted impact assessment: it would add 3 weeks and $45K
- Presented three options: A โ add full feature (delay launch, more budget); B โ basic version now, advanced ML version in Phase 2; C โ defer entirely to Phase 2
- Facilitated the decision: "What's the business impact of delaying our holiday-season launch?"
- Outcome: stakeholders chose Option B โ a basic "Related Products" feature shipped on time and in budget; the full ML engine launched in Phase 2, driving a 12% cross-sell revenue increase
Key takeaway: never say "yes" immediately. Assess impact, offer data-driven options, and document decisions to keep control while keeping stakeholders satisfied.
Scenario-based questions (full answers)
MediumScenario 1: The client keeps changing requirements โ every week a new 'urgent' change. What do you do?
โ Wrong approach: Immediately agreeing without assessment, showing frustration or resistance, making changes without documentation.
โ Right approach โ "I'll implement a formal Change Control Process with four critical steps":
1. Document the Change Request
- Capture: what's changing, why, who requested it, when
- Create a Change Request (CR) form with all details and log it in the change register
- We can use Jira as well to raise the CR
2. Perform Impact Analysis
- Timeline impact: how many days/sprints delayed?
- Cost impact: additional resources needed?
- Scope impact: what features are affected?
- Risk assessment: dependencies and technical constraints
3. Stakeholder Communication
- Present findings to Product Owner and stakeholders
- Show trade-offs clearly (if we add X, we must remove Y)
- Provide options with pros/cons
4. Obtain Formal Sign-Off
- Get written approval before proceeding
- Update requirements documentation (BRD/FRD) and communicate to all teams
MediumScenario 2: A developer challenges your acceptance criteria, calling it ambiguous and untestable
โ Wrong approach: Getting defensive, simply rewriting and resending, blaming the developer.
โ Right approach โ "Let's collaborate to refine this together using the Three Amigos approach":
1. Immediate response: "Thank you for flagging this. Let's walk through the user story together." Schedule a quick Three Amigos session (BA + Developer + QA).
2. Make each criterion SMART:
- Specific: no vague terms
- Measurable: include numbers, limits, timeframes
- Atomic: one testable condition per criterion
- Realistic: technically feasible
- Testable: QA can verify it
3. Document & share: update requirements immediately, share with the entire team, add to lessons learned.
HardScenario 3: Stakeholders are angry about delays and demanding answers
This is where emotional intelligence matters more than frameworks.
โ Wrong approach: Making excuses or blaming others, avoiding the conversation, over-promising to calm them down.
โ Right approach:
1. Acknowledge & empathize: "I understand the frustration. Missing deadlines impacts everyone." Don't be defensive โ show you care about their concerns.
2. Identify root causes with the 5 Whys technique:
- Why are we delayed? โ Testing found critical bugs
- Why were bugs found late? โ Requirements weren't clear
- Why weren't they clear? โ Insufficient elicitation sessions
- Why insufficient? โ Tight timeline, rushed kick-off
- Why rushed? โ Unrealistic project planning
3. Present current status with data: show burndown chart/progress metrics; highlight what's complete, pending, blocked. Be specific: "We're 70% done, 2 sprints behind due to X."
4. Propose a recovery plan: Option A โ add resources to accelerate; Option B โ descope non-critical features (use MoSCoW); Option C โ extend timeline by X weeks. Show pros/cons of each.
5. Set clear next steps: who does what by when, new communication cadence (daily/weekly check-ins), success metrics for recovery.
HardScenario 4: The Product Owner wants Feature A, the client insists Feature B is more important โ both pushing hard
โ Wrong approach: Taking sides, avoiding the conflict, making the decision yourself.
โ Right approach:
Create neutral ground: schedule a joint workshop, set the agenda ("Let's find the best solution for business goals"), and act as facilitator, not judge.
Bring business goals to the table: "Let's start with our objectives โ what are we trying to achieve?" (increase revenue, improve retention, reduce costs). Ground the discussion in strategy, not opinions.
Use value-driven frameworks:
- MoSCoW prioritization: Must have (critical for launch) / Should have / Could have / Won't have (not this release)
- Weighted scoring model: score each feature against weighted business criteria
Present data & trade-offs: "If we build Feature A first, we get X benefit but delay Y. If we build Feature B first, we address the larger user base." Show dependencies, technical constraints and risks.
Recommend & get sign-off: based on data, recommend a path, document the decision and rationale, and get formal agreement from both parties.
HardScenario 5: Conflicting requirements from multiple departments โ automating a loan approval where each department defines 'approval' differently
1. Stakeholder analysis: map all stakeholders โ who are decision-makers vs influencers? Understand each department's definition and rationale.
2. Requirements conflict resolution workshop โ bring all parties together and use CATWOE analysis:
- Customers: who benefits?
- Actors: who performs the process?
- Transformation: what changes?
- Worldview: different perspectives?
- Owner: who owns the process?
- Environmental constraints: regulations, policies?
3. Create a decision matrix: use MoSCoW or weighted scoring; find common ground and non-negotiables.
4. Document & sign-off: create a unified process flow, get formal approval from all stakeholders, update BRD/FRD.
MediumScenario 6: You join a project midway โ no documentation exists
- Meet the Product Owner
- Interview key SMEs
- Review whatever artifacts exist (screenshots, emails, code commits)
- Create as-is process diagrams
- Validate with stakeholders
- Build minimal documentation quickly (BRD โ User Stories โ Acceptance Criteria)
MediumScenario 7: During UAT a tester reports a mandatory field is missing โ but it was never in approved requirements
Verify documentation: check BRD, FRD and change log; review meeting notes and email trails.
If not captured: initiate the Change Request (CR) process immediately โ don't make assumptions or quick fixes.
Impact analysis:
- Timeline: how many days to implement?
- Cost: development effort required?
- Dependencies: what else is affected?
- Risk: will this delay go-live?
Escalate for decision: present findings to the Product Owner/Sponsor with options โ add it now vs include in Phase 2 โ and get formal sign-off before proceeding.
HardScenario 8: Analyzing credit-card fraud data for a bank โ the SME gives incomplete data and deadlines are approaching fast
Identify MVP requirements: what's the minimum data needed to proceed? Separate nice-to-have from must-have data elements.
Work with assumptions: document all assumptions clearly โ e.g. "Assuming fraud rate is 2% based on industry benchmark" โ and get stakeholder acknowledgment.
Communicate gaps formally: send a risk assessment to stakeholders documenting what's missing, potential impact and mitigation plan; get written acknowledgment.
Proceed with partial analysis: deliver what's possible now, plan refinement when complete data arrives, and set up feedback loops.
MediumScenario 9: Users unhappy after go-live despite UAT sign-off
Root causes: gap between documented requirements and user understanding, inadequate training, users didn't fully test during UAT, communication breakdown.
Approach:
1. Post-implementation review: meet users to understand specific pain points; review UAT test cases vs actual issues raised.
2. Gap analysis: what was built vs what users expected โ and why UAT didn't catch it.
3. Immediate actions: triage tickets by severity; address quick wins fast; assess whether major gaps need enhancements or better training.
4. Long-term fixes: revisit training materials and job aids, enhance the communication strategy, document lessons learned, consider video tutorials or FAQs.
MediumScenario 10: Define requirements and create a user story for an HR Dashboard
As a Business Analyst, my role is to understand business needs, identify stakeholders, and translate those needs into clear, actionable requirements.
For an HR Dashboard, I begin with the business objective: giving HR and leadership a clear view of workforce health and trends for better decision-making. Then I identify stakeholders (HR head, recruiters, leadership), elicit KPIs (headcount, attrition %, hiring pipeline, leave trends), and write user stories such as:
"As an HR manager, I want to see monthly attrition by department, so that I can identify teams at risk and plan retention actions." โ with acceptance criteria covering filters, refresh frequency and data sources.
Fundamentals quick revision
EasyWhat does a Business Analyst actually do?
A BA is the bridge between business stakeholders and the technical team: they elicit requirements, analyze processes, document them (BRD/FRD/user stories), validate solutions, and make sure what gets built solves the actual business problem.
EasyBRD vs FRD โ difference?
| BRD (Business Requirements Document) | FRD (Functional Requirements Document) |
|---|---|
| WHAT the business needs and why | HOW the system will fulfil those needs |
| High level โ goals, scope, stakeholders | Detailed โ features, workflows, validations |
| Audience: business stakeholders | Audience: developers and testers |
MediumWhat requirement elicitation techniques do you know?
- Interviews โ one-on-one with stakeholders
- Workshops / JAD sessions โ group requirement gathering
- Questionnaires/surveys โ many stakeholders, quantifiable input
- Document analysis โ existing reports, manuals, systems
- Observation (job shadowing) โ watch the actual process
- Prototyping โ mockups to confirm understanding early
MediumExplain Agile and Scrum in interview-ready form
Agile = iterative delivery in small increments with continuous feedback, instead of one big final delivery (waterfall).
Scrum = the most common Agile framework: work happens in sprints (2โ4 weeks), with roles (Product Owner, Scrum Master, Dev Team) and ceremonies (sprint planning, daily stand-up, sprint review, retrospective). The BA often helps the Product Owner groom the product backlog and write user stories.
MediumWhat is a user story and what makes a good one?
Format: "As a [role], I want [feature], so that [benefit]."
Example: "As a returning customer, I want to save my payment details, so that checkout is faster."
Good stories follow INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable โ and carry clear acceptance criteria.
EasyWhat is JIRA and how does a BA use it?
JIRA is the standard project-tracking tool for Agile teams. A BA uses it to create and manage epics โ user stories โ tasks, write acceptance criteria, track sprint boards, log defects, and pull reports like burndown charts and velocity for stakeholders.
HardScenario: Two stakeholders give conflicting requirements. What do you do?
- Document both requirements clearly and confirm understanding with each stakeholder
- Analyze impact of each against the business objective (cost, time, value)
- Facilitate a joint discussion with data โ often the conflict dissolves once trade-offs are visible
- If not, escalate to the project sponsor/product owner with your recommendation for a decision
EasyWhat is gap analysis?
Comparing the current state (as-is) with the desired state (to-be) and identifying the gaps โ in processes, systems or skills โ plus the steps needed to close them. Commonly presented as a simple as-is/to-be/gap/action table.
MediumWhat KPIs would you define for an e-commerce business?
- Revenue: total sales, average order value (AOV)
- Funnel: conversion rate, cart abandonment rate
- Customer: acquisition cost (CAC), lifetime value (CLV), repeat purchase rate, churn
- Operations: delivery TAT, return rate
Always tie KPIs to a business goal when answering โ "to reduce churn we'd watch repeat purchase rate and NPS."
HR & Behavioral round
The toughest HR questions with the trap hidden inside each one โ and the best approach to answer it. Most technical candidates lose offers in THIS round, not the technical one.
Top 20 classic questions โ trap & best approach
EasyTell me about yourself.
โ TRAP: Rambling about family or reciting your resume line by line.
โ BEST APPROACH: 60-90 seconds: who you are + core skills (SQL, Power BI, Excel) + one project with a number + why this role. End confidently, never trail off.
EasyWhat are your greatest strengths?
โ TRAP: Generic words like 'hardworking' with no proof.
โ BEST APPROACH: Pick 2 strengths the JD asks for, each backed by a mini example: 'Strong SQL - I automated a weekly report that saved 4 hours' beats ten empty adjectives.
EasyWhat are your greatest weaknesses?
โ TRAP: 'I'm a perfectionist' (fake) or confessing a fatal flaw.
โ BEST APPROACH: Real but non-critical weakness + what you're doing about it: 'Public speaking made me nervous, so I started presenting my dashboards in team meetings - it's improving every month.'
EasyTell me about the greatest mistake you ever made.
โ TRAP: Sharing a disqualifying disaster or claiming you never erred.
โ BEST APPROACH: A genuine early-career mistake + the lesson + the changed behavior: 'I once shipped a report without validating source data; since then I always reconcile totals with the source first.'
EasyWhy are you leaving (or did you leave) your most recent position?
โ TRAP: Badmouthing your boss/company - instant red flag.
โ BEST APPROACH: Stay positive and forward-looking: 'I've grown a lot there, but I want deeper analytics work with larger datasets, which this role offers.'
EasyWhy should I hire you?
โ TRAP: Begging ('I really need this') or arrogance.
โ BEST APPROACH: Match: 'You need someone who can own reporting end-to-end - I've built exactly that: SQL pipelines plus Power BI dashboards used by 15+ stakeholders. I can contribute from week one.'
EasyAren't you overqualified for this position?
โ TRAP: Agreeing, or sounding desperate.
โ BEST APPROACH: Reframe as value: 'You get experience without training cost. I'm deliberately choosing this role because I want to go deep in analytics here, not just collect a title.'
EasyWhere do you see yourself five years from now?
โ TRAP: 'In your chair' jokes or 'starting my own company'.
โ BEST APPROACH: Ambitious but aligned: 'A senior analyst leading projects, mentoring juniors, and the go-to person for data-driven decisions in the team.'
EasyWhy do you want to work at our company?
โ TRAP: 'Big brand, good salary' - shows zero research.
โ BEST APPROACH: 2 researched, specific reasons: their domain/product, tech stack, a recent launch or value - and connect them to your goals.
EasyWhy have you been out of work so long?
โ TRAP: Apologizing or over-explaining.
โ BEST APPROACH: One sentence + pivot to visible learning: 'I used the time to complete SQL and Power BI certifications and build 3 portfolio projects - happy to walk you through them.'
MediumTell me about a situation when your work was criticized.
โ TRAP: Getting defensive or claiming it never happened.
โ BEST APPROACH: STAR + growth: the feedback, how you responded professionally, what you changed, and the better result afterwards.
MediumCan you work under pressure?
โ TRAP: A bare 'yes'.
โ BEST APPROACH: 'Yes - with a system.' Give one example: tight month-end deadline, how you prioritized, communicated early, automated a step, and delivered on time.
MediumWhat was the toughest decision you ever had to make?
โ TRAP: Trivial examples or overly personal stories.
โ BEST APPROACH: A professional/academic decision with stakes, your decision framework (data, trade-offs, stakeholders), and the outcome - shows judgment, not just the story.
MediumWhat changes would you expect to make if you came on board?
โ TRAP: Criticizing their current setup on day one.
โ BEST APPROACH: Humble diagnosis first: 'I'd spend the first weeks understanding current processes, then suggest improvements - typically quick wins like automating manual reports.'
MediumHow do you feel about working nights and weekends?
โ TRAP: A blanket yes (sets expectations forever) or rigid no.
โ BEST APPROACH: 'For releases and critical deadlines, absolutely. Long-term I believe good planning and automation should keep routine work in routine hours.'
MediumAre you willing to relocate or travel?
โ TRAP: Lying to get the offer.
โ BEST APPROACH: Be honest with framing: state what you can genuinely do; if flexible, say so enthusiastically - if not, offer alternatives (hybrid, occasional travel).
MediumWhy have you had so many jobs?
โ TRAP: Sounding like a flight risk.
โ BEST APPROACH: Give a theme: each move added a specific skill, and now you're seeking a place to apply the complete package long-term - this role.
MediumMay I contact your present employer for a reference?
โ TRAP: Panic or flat refusal.
โ BEST APPROACH: 'Once we're at offer stage, absolutely - I'd just like to inform them first. Meanwhile here are previous managers/professors you can contact today.'
MediumWhat are your goals?
โ TRAP: Vague ('grow and learn') or purely personal goals.
โ BEST APPROACH: Short-term: master the role's stack and deliver visible impact in 6 months. Long-term: senior analyst owning business-critical dashboards and mentoring others.
MediumHow do you define success and how do you measure up to your own definition?
โ TRAP: Money-only or philosophical rambling.
โ BEST APPROACH: 'Success = my work changing decisions. My dashboard flagged stockouts and management rebalanced inventory - that's my measure, and I'm building a track record of it.'
Tricky & trap questions โ every one answered
MediumDescribe your ideal company, location and job.
โ TRAP: Describing something that doesn't match this company โ you just disqualified yourself.
โ BEST APPROACH: Describe a company remarkably like the one interviewing you: 'A place where data actually drives decisions, where I can own dashboards end-to-end and keep learning โ which honestly is what attracted me to this role.' Keep location flexible unless you truly can't move.
MediumWhat are your career options right now?
โ TRAP: 'I have no other offers' (desperate) or bluffing about fake offers.
โ BEST APPROACH: Confident and honest: 'I'm in discussions with a couple of companies for analyst roles, but this position interests me most because of [specific reason].' You look in-demand without lying.
MediumTell me honestly about the strong points and weak points of your former boss/company.
โ TRAP: Criticizing them โ the interviewer imagines you saying the same about THEM next year.
โ BEST APPROACH: Praise generously, keep any negative tiny and neutral: 'My manager gave me a lot of ownership โ I learned reporting end-to-end. If anything, the company was small, so there was limited exposure to large datasets, which is exactly what I'm looking for here.'
MediumWhat good books have you read lately?
โ TRAP: Naming an impressive book you haven't read โ follow-up questions will expose you.
โ BEST APPROACH: Name something you genuinely read/consumed โ even honest alternatives work: 'Lately I've been deep in Power BI documentation and StatQuest videos more than books; the last book I enjoyed was Storytelling with Data by Cole Knaflic โ it changed how I design dashboards.'
MediumWhat are your outside interests?
โ TRAP: 'Nothing, I just work/study' (no personality) or a list so long they wonder when you'd work.
โ BEST APPROACH: 1โ2 genuine interests, ideally one showing discipline or curiosity: 'I play cricket on weekends, and I enjoy making small data visualizations of things I'm curious about โ like IPL stats.' Human + relevant.
MediumHow do you feel about reporting to a younger person, or a woman, or someone from a minority group?
โ TRAP: Any hesitation, qualification, or 'I guess that would be fineโฆ'
โ BEST APPROACH: Instant and genuine: 'Completely comfortable โ I care about what I can learn from my manager, not their age or background. Skill and clarity matter; nothing else does.' Full stop, no elaboration needed.
MediumOn confidential matters โ would you share information from your previous employer?
โ TRAP: Sharing anything to look helpful โ you just proved you can't be trusted with THEIR secrets.
โ BEST APPROACH: Politely refuse: 'I wouldn't feel right sharing confidential information from my previous employer โ just as I'd protect this company's information if I join.' This answer alone can win the interview.
MediumLooking back, what would you do differently in your life?
โ TRAP: Deep regrets or 'I would have chosen a different career' (so why are you here?).
โ BEST APPROACH: Light and forward-facing: 'Honestly, not much โ every step taught me something. If anything, I'd have started learning SQL and analytics a year earlier, because I enjoy it so much.' Contentment + passion for the field.
MediumCould you have done better in your last job?
โ TRAP: 'Yes, definitely' (underperformer) or 'No, I was perfect' (arrogant, unreflective).
โ BEST APPROACH: Balanced: 'I gave it my best with what I knew then โ and like anyone growing, I know more now. For example, I'd now automate reports I once built manually.' Growth without confessing failure.
MediumWho has inspired you in your life and why?
โ TRAP: Blank mind, or a controversial figure.
โ BEST APPROACH: Pick someone real to you โ a parent, teacher, or professional figure โ and tie the lesson to work: 'My father โ he taught me consistency beats talent. That's how I approach skill-building: SQL practice daily, one project at a time.'
MediumTell me about the most boring job you've ever had.
โ TRAP: Calling any work 'boring' โ they hear 'this person gets bored easily and this role has routine work too.'
โ BEST APPROACH: Refuse the premise gracefully: 'Honestly, I find something in every job โ even repetitive data entry taught me why automation matters, and pushed me to learn Power Query. Routine work is usually a process waiting to be improved.'
MediumHave you been absent from work more than a few days in any previous position?
โ TRAP: Defensive over-explanation of health/personal issues.
โ BEST APPROACH: If no: say so simply. If yes: one calm sentence + reassurance: 'I had a health issue in 2023 that's fully resolved โ my attendance since has been excellent.' Move on confidently.
MediumI'm concerned that you don't have the specific degree/certification/experience we listed.
โ TRAP: Agreeing meekly or getting defensive.
โ BEST APPROACH: Acknowledge + counter with equivalence: 'True, I don't have that certificate โ what I do have is the working skill it certifies. Here's a dashboard I built and the SQL behind it; happy to solve a problem live right now.' Proof beats paper.
MediumDo you have the stomach to fire people? Have you had experience firing anyone?
โ TRAP: Eagerness ('no problem!') or complete avoidance ('I could never').
โ BEST APPROACH: Humane but capable: 'I'd never enjoy it, and I'd first ensure the person had feedback, support and a fair chance. But if someone repeatedly hurts the team after all that, I can make the hard call respectfully.'
MediumWhat do you see as the proper role/mission of a good data analyst / employee?
โ TRAP: Vague philosophy with no substance.
โ BEST APPROACH: Crisp and business-focused: 'A data analyst's mission is turning raw data into decisions โ asking the right business question, ensuring the data is trustworthy, and presenting insights so clearly that action becomes obvious. Dashboards are the tool; better decisions are the job.'
MediumWhat would you say to your boss if he's crazy about an idea, but you think it stinks?
โ TRAP: 'I'd tell him directly it's wrong' (tactless) or 'I'd go along with it' (spineless).
โ BEST APPROACH: Respect + data: 'I'd ask questions first to fully understand it. Then I'd share my concern privately, backed by data โ "here's what the numbers suggest; can we pilot it small first?" If the boss still decides to proceed, I commit fully โ disagree, then commit.'
MediumHow could you have improved your career progress?
โ TRAP: Listing regrets that make your career look poorly managed.
โ BEST APPROACH: Frame the past as deliberate and the future as the improvement: 'I'm happy with my path โ each step built a skill. The one accelerator I've now added is visibility: sharing my work publicly (Medium, LinkedIn, portfolio), which is already opening doors like this one.'
MediumWhat would you do if a colleague at your level wasn't pulling their weight and it hurt your work?
โ TRAP: 'I'd report them to the manager' (snitch) or 'I'd do their work myself' (pushover).
โ BEST APPROACH: Escalation ladder: 'First, talk to them directly and kindly โ maybe they're stuck or struggling; offer help. If nothing changes and deliverables keep slipping, I'd raise it with my manager factually โ focused on the work impact, not the person.'
MediumYou were with your former employer a long time. Won't it be hard switching to a new company?
โ TRAP: 'Maybe, change is hardโฆ' โ confirming their fear.
โ BEST APPROACH: Flip loyalty into an asset: 'My long stay shows commitment โ I invest deeply where I work, and I'll do the same here. And even in one company I adapted constantly: new tools, new managers, new processes. Adaptability and loyalty aren't opposites; I offer both.'
MediumGive me an example of your creativity / analytical skill / managing ability.
โ TRAP: Generic claims without a story.
โ BEST APPROACH: One prepared STAR story per skill. Creativity/analytical example: 'Our sales report couldn't explain a revenue dip. I broke revenue into price ร quantity ร mix, and found the dip was purely product-mix change, not lost customers โ that reframed the whole management discussion.'
MediumWhere could you use some improvement?
โ TRAP: Same as the 'weakness' trap โ confessing something fatal to the role.
โ BEST APPROACH: A real, improvable, non-core skill + action already underway: 'My Python is functional but I want it fluent โ I'm doing a daily Pandas exercise. My SQL and BI skills carry my current work while Python becomes my multiplier.'
MediumWhat do you worry about?
โ TRAP: Revealing anxiety ('I worry about failing') โ they hear instability.
โ BEST APPROACH: Convert worry into professional conscientiousness: 'I "worry" about the quality of my numbers โ before any report goes out, I reconcile totals against the source. Beyond that, I sleep well; I prepare instead of worrying.'
MediumCould you be considered a workaholic? How many hours a week do you work?
โ TRAP: 'Yes, I work 80 hours!' (burnout candidate, poor planner) or sounding lazy.
โ BEST APPROACH: Results over hours: 'I work as long as the goal needs โ crunch weeks happen and I show up for them. But I measure myself by output, not hours; good planning and automation mean most deadlines don't need heroics.'
MediumWhat's the most difficult part of being a data analyst?
โ TRAP: Complaining ('stakeholders keep changing requirements!').
โ BEST APPROACH: Name a real challenge + how you handle it: 'Translating a vague business ask into a precise data question โ "why are sales down?" has fifty versions. I handle it by asking clarifying questions upfront and agreeing on the metric definitions before writing a single query.'
MediumThe Hypothetical Problem โ 'What would you do ifโฆ'
โ TRAP: Freezing, or giving a snap answer without structure.
โ BEST APPROACH: Use a visible framework: 'Let me think through this โ first I'd clarify the goal, then look at what data/resources we have, then the options and their trade-offs, and I'd pick X becauseโฆ' Interviewers grade the thinking process, not the exact answer.
HardThe Behavioral Question โ 'Tell me about a time whenโฆ'
โ TRAP: Rambling stories with no point, or 'I can't think of an example.'
โ BEST APPROACH: Prepare 5 STAR stories before the interview (conflict, deadline, failure, initiative, teamwork) โ each: Situation โ Task โ Action โ Result-with-a-number. One good story can be adapted to many behavioral questions.
HardWhat was the toughest challenge you've ever faced?
โ TRAP: Trivial challenges, or purely personal tragedies that make things heavy.
โ BEST APPROACH: A professional/academic challenge with stakes: 'Learning analytics while working full-time โ I built a routine of 2 hours daily for 8 months, shipped 3 projects, and switched careers. It taught me I can systematically learn anything this field throws at me.'
HardWould you consider starting your own business?
โ TRAP: 'Yes, that's my dream!' โ they hear 'this hire will leave in a year.'
โ BEST APPROACH: Honest but reassuring: 'I respect entrepreneurs, but my genuine interest is going deep in data โ the problems I want, the mentorship and the scale of data I want to work with, exist inside companies like this one, not in a solo venture.'
HardWhat do you look for when you hire people?
โ TRAP: A textbook list with no thought.
โ BEST APPROACH: Values that mirror what THEY want in you: 'Three things โ ownership (they care about the outcome, not just the task), honesty about what they don't know, and evidence of self-learning. Skills can be taught; those three can't.'
HardSell me this stapler / pen / object on the desk.
โ TRAP: Instantly listing features ('it's steel, it's shinyโฆ').
โ BEST APPROACH: Sell like an analyst โ needs first: 'Before I sell, may I ask โ how often do you bind documents? What frustrates you about your current one?' Then match features to their stated need and close: 'Given you said X, this solves it โ shall I put you down for two?' Questions โ needs โ benefit โ close.
HardLooking back on your last position, have you done your best work?
โ TRAP: 'Yes, my best is behind me' or 'No' (underperformer either way).
โ BEST APPROACH: The classic perfect answer: 'I'm proud of my work there โ and I'm confident my best work is ahead of me, which is exactly why I'm sitting here.' Past = proud, future = better.
HardWhat was the toughest part of your last job?
โ TRAP: Naming a core duty of the NEW job as your struggle.
โ BEST APPROACH: Pick something absent from this role, or convert it into a strength: 'Manual weekly reporting consumed hours โ so I automated it with Power Query and got the time back for real analysis. Repetition frustrates me into automating things, which I consider a feature.'
HardTell me something negative you've heard about our company.
โ TRAP: Actually repeating gossip or Glassdoor complaints โ instant self-destruction.
โ BEST APPROACH: Decline gracefully: 'Honestly, nothing substantial โ my research showed [genuine positive]. Every company has anonymous complaints online, but I prefer judging from the people I meet, and so far the process here has impressed me.'
HardWhy should I hire you from the outside when I could promote someone from within?
โ TRAP: Criticizing internal candidates you've never met.
โ BEST APPROACH: Respect + differentiation: 'Internal promotion is great when the skills exist in-house. What I bring from outside is a fresh perspective plus ready-made skills โ [specific skill/tool] โ with zero ramp-up on the craft itself. You get new capability, not just a reshuffle.'
HardThe Illegal Question (age, religion, marital status, family planningโฆ)
โ TRAP: Angry refusal ('that's illegal!') kills the interview, even though you're right.
โ BEST APPROACH: Answer the concern behind the question, not the question: asked about marriage/kids plans โ 'If you're asking about my commitment to the role โ I'm fully committed to building my career here, and my personal life has never affected my professional delivery.' Address the fear; skip the detail.
HardThe Unasked Illegal Question (the doubt they hold but never say aloud)
โ TRAP: Pretending the unspoken doubt (age gap, career break, background) doesn't exist.
โ BEST APPROACH: Defuse it proactively yourself: if you sense they're wondering about your career gap or age, weave the reassurance into another answer: 'One thing you'll notice about me โ after my break, I came back with more focus than ever; here are the 3 projects that prove it.' Kill the doubt they can't legally ask about.
Data Warehousing concepts
Every serious data analyst interview touches these concepts โ they're the foundation under Power BI and Tableau. Eight concepts, interview-ready.
EasyWhat is a data warehouse and why do companies need one?
A data warehouse is a central repository that stores integrated, historical data from multiple sources, structured for analysis and reporting rather than day-to-day transactions. Companies need it because operational databases are optimized for fast transactions, not for the heavy analytical queries a business runs across years of data.
EasyOLTP vs OLAP
| OLTP (transactional) | OLAP (analytical) |
|---|---|
| Runs the business โ orders, payments | Analyzes the business โ trends, reports |
| Many small, fast reads/writes | Few large, complex read queries |
| Current data, normalized schema | Historical data, star/snowflake schema |
| Example: banking app database | Example: sales analytics warehouse |
EasyFact table vs Dimension table
- Fact table: the numbers (measures) โ sales amount, quantity, profit โ plus foreign keys to dimensions. Long and narrow, millions of rows.
- Dimension table: the context โ who, what, where, when (Customer, Product, Region, Date). Wide and short.
Every BI question โ "sales by region by month" โ is facts sliced by dimensions.
MediumETL vs ELT
- ETL: Extract โ Transform (in a staging tool) โ Load into the warehouse. Traditional approach.
- ELT: Extract โ Load raw data first โ Transform inside the warehouse using its compute (modern cloud approach โ Snowflake, BigQuery, Databricks).
ELT dominates now because cloud warehouses are cheap and powerful enough to transform at scale.
HardWhat are Slowly Changing Dimensions (SCD)?
How you handle dimension attributes that change over time (a customer moves city):
- Type 1: overwrite the old value โ no history kept
- Type 2: add a new row with start/end dates or a current flag โ full history preserved (most asked)
- Type 3: add a "previous value" column โ limited history
MediumWhat is a surrogate key and why use it instead of a natural key?
A surrogate key is a system-generated integer ID with no business meaning, used as the dimension's primary key. Preferred because natural keys (email, product code) can change, repeat across source systems, or be reused โ and integer joins are faster. Surrogate keys are also what make SCD Type 2 possible (same customer, multiple rows, different surrogate keys).
MediumWhat is data granularity (grain)?
The level of detail of one row in the fact table โ one row per order line? per order? per day per store? Defining the grain is the first design decision in warehousing; mixing grains in one fact table is a classic design failure interviewers probe.
EasyData warehouse vs data lake vs data mart
- Warehouse: structured, modeled data for BI and reporting
- Data lake: raw data of all types (structured/semi/unstructured) stored cheaply for flexible future use, incl. ML
- Data mart: a small, department-focused slice of a warehouse (e.g. just the sales mart)
Download
Full slide deck by Mahendra
Resource Hub
The complete library by Mahendra Singh โ every question bank, note and guide opens right here in the built-in reader. Everything is free to read online, and the SQL Handbook & SQL Notes are free to download.
๐ Business Analyst (3)
Read online
Read online
Read online
๐ Data Warehousing (1)
Read online
๐ Excel (1)
Read online
๐ General (3)
Read online
Read online
Read online
๐ Machine Learning & Python (2)
Read online
Read online
๐ Notes (7)
Read online
Free downloadDownload โฌ
Read online
Free downloadDownload โฌPDFSQL Server Notes
Free downloadDownload โฌ
Read online
Read online
๐ Power BI (1)
Read online
๐ Tableau (15)
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Read online
Tableau Learning
A complete Tableau concepts reference by Mahendra Singh โ data sources, joins vs relationships vs blends, live vs extract, dimensions & measures, filters, sorting, sets, calculations, dashboards, file types and more, with the original screenshots included. Read straight through or jump to the topic you need.
Opening different data types in Tableau
- Tableau can support two type of data sources: from a file(local PC), from a server(from Web)
- By default, Tableau maintains a live connection to your data, so as new source data is added, it can be incorporated into your analysis. A live connection is a direct connection to your data, while a Tableau data extract is a compressed snapshot of data stored locally and loaded into memory.
Methods to join Data in Tableau
- Relationships are a dynamic, flexible way to combine data from multiple tables for analysis.
- When relating tables, the fields that define the relationships must have the same data type.
- The first table that you drag to the canvas becomes the root table for the data model in your data source.
- You can connect to many data sources to build your relationships. If there is a common field name between the tables involved, then it doesnโt matter if those tables are located in one data source or in different data sources.
- You can't edit relationships after publishing a data source.
- Relationships can be published.
- Relationships are computed locally.
- You can't define new relationships between published data sources.
- Relationships can't be joined on Geographical fields/Calculated Fields.
- Relationship requires at least 1 common field.

- Joins are static.

- A join combines the data and then aggregates. A blend aggregates and then combines the data.
- A relationship makes sure all the columns are there from both tables in the view, join doesnโt do that.
- Joining data with different aggregations or levels of detail can cause data duplication.
- cross database join: tables from multiple connections.
- Data from different data source can't be union-ed.
- Blend/Relationship retains the original table structure.
- Blends can't be published.
- Blend is computed as a part of SQL Query.
- join/union will always create a new table
- Cross-database joins require that you first set up a multi-connection data source
- When field names in the union do not match, fields in the union contain null values. You can merge the non-matching fields into a single field using the merge option to remove the null values. When you use the merge option, the original fields are replaced by a new field that displays the first non-null value for each row in the non-matching fields.

- The result of combining data using a join is a table that's typically extended horizontally by adding fields of data.

- physical layer does join union or both
- you can use a union to combine data that has a similar structure so that rows from one table are appended to the rows of another table.
- In Tableau, unions can be created manually or by using a wildcard search.
- In a union, Tableau adds reference fields to help you identify the source of the data.
- The other way to create a manual union is by using the New Union option.

- When you create a union in the canvas of the Data Source page, Tableau displays a logical table that is shown in the logical layer.
- This logical table contains the union-ed physical tables.
- If two columns have same purpose but with different values, these can be merged using "match mis-merged field" to get optimal results.
- Data Blending is left-outer join and is worksheet specific i.e. different worksheet can have different blends and it is done through data pane itself.
- Primary will be blue, Secondary will be orange.

- There must be a common dimension between the data sources in a data blend.
- The primary data source will include all values from that data source.
- Whichever table's data is first dragged to sheet becomes primary data blending source.
- All secondary data in blending must be aggregated
- Blends, unlike relationships or joins, never truly combine the data. Instead, blends query each data source independently, the results are aggregated to the appropriate level, then the results are presented visually together in the view.
- Blend requires at least 2 data sources whereas relationship and Join only require single data source.
- One reason you might use blends over relationships is to combine published data sources for your analysis.
- Blends are established individually on every sheet. Because there is no true โblended data source,โ only blended results from multiple data sources in a visualization, the blended data cannot be published to Tableau Online or Tableau Server.
- When users connect to Tableau, the data fields in their data set are automatically assigned a role and a type.
- Role can be of the following two types:
- 1) Dimension
- 2) Measure
- Type can be of the following :
- 1) String
- 2) Number
- 3) Geographic
- 4) Boolean
- 5) Date
- 6) Date and Time
- When using the manage metadata option, when we change the name of a field, it is referred to as "Field name" which was previously referred as "Remote Field Name
Live vs Extract
- Live data process queries in source database whereas Extract process queries using Tableau Data Engine.
- To refresh the live data:

- Live is best choice when you want to leverage a high performance databaseโs capabilities, or to get up-to-the-second changes in data visualized in Tableau. When we chose this, Tableau maintains a connection to the data source, so data refreshes in the workbook.
- Extract is best choice when we connect to a slow database or when you want to take query load off critical systems. You can choose to import only some of the data and bring in specific elements to the extract.
- Extract file have .hyper extension.
- An extract is only extract for that particular workbook but when it is share to others it will act as live and if we use it on another notebook again it will be live data.
- Extract is not useful for private data as you're saving the data in local system and it can be shared with anyone.
- Tableau treats sheets within Excel as separate database tables.
- Double cylinder means extract data.

- Single cylinder stands for live data.
- A data extract is a saved subset of a data source, with the total amount of extract data determined by using filters and configuring other limits.
- Extract is used when we want to filter our data and save it for future purposes.
- Extract provides additional functionality such as COUNTD.
- Extracts can't update automatically, they can either be manually refreshed or periodically.
- When refreshing the data, you have the option to either do a full refresh, which replaces all of the contents in the extract, or you can do an incremental refresh, which only adds rows that are new since the previous refresh.

- Disadvantages of Extract

- Tableau can extract data from either logical(Single table) or physical tables(Multiple Table).

- While extracting, we can also extract aggregated measures.
Metadata
- Tableau shows 10,000 preview rows by default.
- To manage metadata quickly, one can chose "manage metadata option".

- Tableau preserves the customizations you make, but it does not change the underlying source data.
Saving metadata to a .TDS file

Dimension and Measures
- blue color items are discrete because they are categorical
- green color items are continuous because they are numerical
- Dimension + Measures: WHAT?
- Discrete + Continuous: HOW?
- Dimension - Independent variable; Measures - Dependent variable
- A discrete field always create the row header and a continuous field creates an axis.
- A discrete field is blue and a continuous field is green.
- A green pill always be aggregated based on the context.
- A measure can also be discrete and a dimension can also be a continuous value.
- A dimension is always qualitative. and Measure is quantitative.
- A measure can be used as discrete when we don't want axis and just text.
- A measure is something on which we can apply aggregated features such as sum, avg, etc.
- Geographic and Date can be both continuous as well as discrete.
- The dimensions that define how to group the calculation (the scope of data it is performed on) are called partitioning fields. The table calculation is performed separately within each partition.
- The remaining dimensions, upon which the table calculation is performed, are called addressing fields, and determine the direction of the calculation.
- Color and comment is the common attribute for measure or dimension.
- Color palettes can only be defined for Dimensions.
- When you drop a continuous field on Color, Tableau displays a quantitative legend with a continuous range of colors.
- When we drag continuous and discrete fields: we get two different color palettes i.e. categorical and quantitative legends (sequential palette).
- Default properties for Dimensions:
- 1. Comment
- 2. Colour
- 3. Shape
- 4. Sort
- 5. Date Format (For Date Type)
- Default properties for Measures:
- 1. Comment
- 2. Colour
- 3. Number Format
- 4. Aggregation
- 5. Total Using
Measure Values & Measure Names
- The Measure Values field is a measure that contains the values of the measures.
- The Measure Names field is a dimension that contains the names of the measures.
- Measure Names & Measure values works hands in hands. Measure names acts as a labels for measure values.
- Measure names and Measure values could also be used to create 2 or more axis charts.
- The most common use of Measure name and Measure value is to create Text Table(crosstab/pivot tables).
- When we add Measure Values to a view, Tableau creates a Measure Values card that lists the measures in the data source with their default aggregations.
- When we add Measure Names to a view, the measure names appear in the view as row or column headers, depending on whether it is added to Rows or Columns.
- Text tables can have max of Fifty on Rows and sixteen on Columns.
- Adding two or more measures to the same axis automatically adds Measure Names and usually Measure Values to a view.
Creating Folders
- Folders can be created when we wish to keep some of data together:

- Similarly, to change a dimension to a measure, drag the dimension to the Measures area.
- When we create an alias for an entity, the Has Alias column now has a * to indicate that the member has an alias.

- When we add the field to the view, the alias names will appear as labels in the view.
- Aliases are only for dimensions.
Creating Groups & Hierarchy
- A group(represented by Paper clips) lets you combine several members of a single dimension into a single data point or category type, creating a new dimension field that didnโt originally exist in your data.
- Groups are used to combine high level category using low level.
- Groups in Tableau are represented by a paper clip.
- A hierarchy is an arrangement of data fields in a hierarchical format with an "above" and "below" structure. A hierarchy preserves the ordering, creates drilling capabilities in the visualization, and it can be used over and over. Any type of data can be organized into a hierarchy.
- We can have more one field to more than one hierarchy.
- Category and SubCategory can be grouped using Hierarchy.
- Date Fields are automatically by default in hierarchy.
- Tableau behaves differently when we create groups using labels within the view and using labels in the view.
- Grouping can be done in three ways: from data pane or from views, marks in the views.
- Groups can be made on both dimensions and measures.
- We can also create a new group inside the group.
- We have an option to either view other members as "Other" or by their labels.
- While creating groups within the view, the new group field is instantly used in the view.
- If we group using labels in the view, a new consolidated mark is created. (if include other is unchecked) (by default)
- When we create a group in marks for the first time: (if include others is checked)
- The mark colors are updated in the view.
- A group called "others" is created.
- A group field is created in the data pane.
- A group is selected that combines all selected marks.
Filtering the data
- "Keep only" and "Exclude" are the simplest Filter option available in the view.
- We can also use "Keep Only" and "Exclude" to the headers. If we keep hierarchical fields, then all the further fields would stay in the view.
- Filtering data makes it easier to focus on relevant information in a large dataset or table of data. Filtering does not remove or modify data, it just changes the data that appears in your view.

- Extract Filters >>
- Data Source Filters >>
- Context Filters (Sets, Conditional Filters, top N, Fixed LOD) >> (All filters in Tableau are computed independently. If you want one filter to be applied before other filters, make it a context filter so it will be processed first.)
- Dimension Filters(Include/Exclude LOD, Data Blending) >>
- Measure Filters(Forecast, Table Calc, Clusters, Total) >>
- Table Calculation Filters(Trend Lines, Reference Lines)
- By default, a filter only applies to the worksheet that it is created in. But you can change that by right-clicking the filter in the Filters shelf, and selecting Apply to Worksheets.
- Measures contain quantitative data, so filtering this type of field generally involves selecting a range of values that you want to include and showing only the values that meet your filter criteria.
- A dimension filter restricts categorical data in your view. The members present in a dimension can be included or excluded using this filter.
- Context filter is an independent filter. Any other filter that you set are defined as dependent filters because they process only the data that passes through context filter. It applies the filter to the base level i.e. sheet level.
- The objective of using context filter is to boost the performance of filters on large dataset. It is usually on categorical data.
- Context filter can be only dimensional filter.
- Context filters also helps to create a dependent numerical or top N filters.
- To speed up context filters: do the data modelling before filtering, use bins for continuous dates.
- The normal filter might contain the intersection of 2 filters(if applied) that's why we use context filter to see the view out of that intersection. Simply go to a filter and right click and "Add to Context".
- Extract Filters are only available for Single Table option.
- Multiple filters works with AND clause.
- you can filter data across multiple primary data sources. You cannot filter data across secondary data sources.
- To apply a filter to multiple data sources, simply define the relationship between two data sources it is not necessary for both fields to have same field name but contain something in common. Once the relationship is defined, go to any sheet and put a filter and toggle it to apply to all worksheets.
- The filters restricted to current worksheet is called LOCAL FILTERS.
- Filters for dimensions includes: General, Wildcard, Condition, Top.

- Filters for measure allows you to work on different variations such as sum, average, median, std deviation etc. It includes: Range of Values, At least, At Most, Special(includes null values and all).

- If you have a large data source, filtering measures can lead to a significant degradation in performance.
- For Date filters, we get same options as dimension and measure filters for dimensional and measure date respectively. It also allow us to chose from Dimensional and measure dates.

- We can filter dates in: Filter Relative Dates, Range of dates, Starting date, ending dates, Special.

- To create a table calculation filter, create a calculated field, and then place that field on the Filters shelf.

- Format Filters & Set Controls: Helps to format the color of filters.
- All values in Database: If we chose this, all values will be shown from database regardless of other filters.

- We can add filters to multiple sheets either by right clicking fields on filter shelf or using toggle button in legends.
- Date part vs Date value filter:

Granularity
- Granularity only depends on dimensions.
- Aggregated measures are granularized based on some dimensions.
- Fields with limited quantities can be brought to label, shape or color. But fields with high quantities can only be brought to details and that add level of detail i.e. granularity.
Sorting
- Computed sorts organize the data by applying rules and are dynamic.
- Manual sorts organize the data by manual rules.
- Sorting is done on dimensions only.
- Data can be sorted using single click options from an axis, header, or field label. One click to sort ascending, two click to descending and three click to clear sorting.
- Sorting can also be done through toolbar, through headers or through column shelf.
- To sort manually, drag and drop fields.
- Once the items are manually sorted, they'll not change even if we refresh our data.
- A nested sort considers each pane independently and sorts the rows per pane. Nested sort is most useful when you want to sort within a category of items in a view.
- Nested sorts are correct within the context of the pane, but donโt convey the aggregated information about how the values compare overall.
- Sorting from an axis/Toolbar gives a nested sort by default.
- Sorting from a field label gives a non-nested sort by default
- Enabling any other type of sort (Field, alphabetic, or Nested) clears the manual sort we create.

- Data source order means, the data would follow the natural sort.
- Field lets you choose on which field do you want to sort.

- To remove all the sorts:

- To disable sort, uncheck "Show Sort Controls" in Worksheet menu.
Sets
- Sets are useful for viewing and highlighting data that meet specific criteria.
- Sets can only be created on dimensions.
- Sets can actually be called as pre-computed filters as they subset data.
- There are two types of sets: Static (made from view) and dynamic (made from data pane).
- For Dynamic Set

- For static set

- We can add/remove data points from a set:

- You can only display a set control for dynamic setsโnot fixed sets.
- a set can be used on any dimension.
- a set is itself a dimension
- Sets are used to compare, and Filters are used to filter out the data.
- When you combine sets, you create a new set containing either the combination of all members, just the members that exist in both, or members that exist in one set but not the other.
- To combine two sets, they must be based on the same dimensions.
- Sets can also be used as filters, drag them to filter shelf.
- To show individual members of set:
- Right click on set >> Show members in set

- Filter and sets are same, but sets are more of a permanent filters.
- Filter will change the view, set will add a dimension to the view. (i.e. filter will remove the points, but here we will get both in and out points)
- We can combine two sets to compare them.

- GROUP vs SET

- Filters only apply to the current worksheet. Sets can be reused throughout the workbook. Since sets become part of the metadata, any workbook connected through that saved data source (or .tds file) can also utilize its functionality.
- You can rename the "in/out" labels to use labels of your choice. You do this by using an alias or a calculation which uses an IF Then ELSE statement.
- Set actions can be enabled from Worksheet > Actions

Date Value & Date Parts
- If a date field is used as a date part in a view, then Tableau displays the field in blue and shows headers for each discrete part.
- Date part is discrete.
- Date value is continuous.
- If a date field is used as a date value in a view, then Tableau displays the field in green and shows the values along an axis that is a continuous range of time.
- Date part is individual while Date Value is always wrt time/year.
Date Properties
- Right click on data source and chose Date Properties.

Dual Axis and Combined Axis charts
- Dual axis charts have two axes for the measures and one for the dimensions. Dual axis charts are useful for showing how two measures compare to each other.
- In Dual Axis chart, we can only synchronize second axis wrt first and not vice-versa.
- Convert Dual-Axis chart to Combined axis chart by hiding the second axis.
- Plot a chart between a dimension and measure and then to create a dual axis chart, just drag the second measure to the right of chart. (Multiple marks are created here) (It can only compare 2 measures together)(dual axis chart = combination chart) (Can be created with measures as well as dates)
- Dual and combined axis charts use two measures and one or more dimensions.
- In combined axis chart, both the charts are visualized on same axis. Plot a chart between dimension and measure and then to create a combined axis chart, just drag the second measure to y axis. (Only 1 mark is there)(we can compare more than 2 measures) (combined axis chart = blended axis chart = shared axis chart)
- dual axis chart can be created using dates(when done continuous)
Text-Tables (Pivot Tables / Cross tabs)
- A highlight table is useful for showing data values while also revealing key valuesโsuch as the highest or lowestโwhich may also reveal patterns in the data.
- Color, Text and Mark type are used to highlight tables.
Pie Charts (2-5 categories only)
- The basic building blocks for a pie chart are the Pie mark type, a dimension on Color, and a measure on the Angle option on the Marks card.
- Pie charts are effective for showing part-to-whole comparisons with a dimension that has a small number of categories
Analytics Pane

- We can add a constant line for a specific measure, for all measures, or for date dimensions.
- Box plots are combination of reference lines and reference bands.
- Box plots are used to check if our data have any outliers or not.
- You can add box plots for a specific measure or for all measures. The scope for a box plot is always Cell.
- To create box plot, take a quantified entity, check off the aggregated measures and in show me chose box plots.
- Box plot represents interquartile range.
- A Reference Distribution plot can be along a continuous axis.
- You can add reference lines, bands, distributions, or (in Tableau Desktop but not on the web) box plots to any continuous axis in the view.
- A Reference Band can be based on two fixed point.
- Adds totals to the view. When you add totals, the drop options are Subtotals, Column Grand Totals, and Row Grand Totals.
- Trend lines can be Linear, Exponential, Logarithmic, Polynomial.
- Forecasting is only possible with at least one measure.
- Forecasting is always done on continuous date fields.
- When we increase our precision in forecasting, the range is increased.
- Trend lines can only be used with numeric or date fields.
- We can also add a custom reference line, reference plot, box plot, distribution band.
- A trend line requires 2 measures on opposing axes, or a date and a measure on opposing axes.
- We can add a trendline and reference line to scatter plot.
Parameters
- Parameters simply control a variableโs value, they are only useful once that value is incorporated into something else such as a filter, set, reference line, or a calculated field.
- Parameters arenโt the same as filters, but they can be used to customize filters.

Tree-maps
- Tree maps require 1 or more dimensions and 1 or 2 measures.
- Tree maps don't use rows and column shelf but rather use only marks pane & hence, don't have axes. But to increase LOD we can also add rows and columns.
- We can also add more colors using second measure in our tree map.
- A tree map requires size, color and detail.
Calculations
- It can be either across the pane, down the table or for the cell.
- A calculation, also known as a formula, includes some or all of these components:
- Fields
- Functions
- Operators
- Parameters
- Comments
- Clicking Apply allows you to preview how the calculation changes the data in the view. Clicking OK saves the calculation.
- for the first data value, there is no previous value to compare it to. Hence, it appears as NULL.
- Save an ad-hoc calculation (calculation created in row/column shelf) for use in other workbook sheets, CTRL + drag it from the view to copy it to the Data pane
- To fix any calculation, put {} around the calculation. And the calculation will be same for the whole table i.e., constant value for the table and can't be broken by any measure or dimension.

- Table calculations are used on data in the view.
- Table calculations can be saved and doesn't automatically occurs in data pane.
- To create a quick calculation, add a measure to the view and right click chose "Quick Table Calculations".
- We can also edit a quick table calculation.

- We can also create a Table Calculation, right click on a measure in view and click "Table Calculation".

Tableau Dashboards and Stories
- When you modify a sheet, any dashboards containing it change, and vice versa. This is because data in sheets and dashboards is connected. With a live connection, both sheets and dashboards update with the latest available data from the data source.

- Actions can be triggered either through: Hover, Select, Menu
- 3 types of dashboard actions - select, hover and menu. Hover is best for highlighting, select for filtering. Menu action is added to the tooltip and user can decide whether to run that action or not (best for URL actions)
- Filter action uses the data from one view to narrow down data in another to help guide analysis.
- Floating layout might overlap in Dashboards.
- These are safe URL prefixes allowed - HTTP, HTTPS and FTP. for dashboard actions.
- To save space or improve its proximity to another item, you can float a view, filter, legend, text, image, web page, or even a layout container.
- Dashboard can be made on Phone, Tablet, Default, Desktop.
- Tooltips are a great way to provide additional context in a dashboard without using additional text or marks in a view.
- The viz in the tooltip is a static image, not an interactive viz.
- If you use Show Me in the source sheet to change the view structure, you will reset all tooltip edits, including Viz in Tooltip references.
- Tableau supports two types of animation: Sequential and Static.
- A story is a sheet that contains a sequence of views and dashboards that work together to convey information.
- Delete option is disabled for a sheet if it is used by either dashboard or a story.
- Most important visualizations are placed on upper left corner.
- We can't add both a Dashboard and a Worksheet at the same time to a Story Point in Tableau.
- To customize links based on your data, you can automatically enter field values as parameters in URLs.

- On a dashboard, you can specify an ftp address only if the dashboard doesn't contain a web object. If a web object exists, the ftp address won't load.
- Tableau supports 9 objects:

- Drop down in Dashboard objects:

- Legend highlighting helps to stand the data highlighted.
- We can export dashboard/story image in jpg, png, emf, bmp format using Dashboard>Export Image and Story>Export Image.

Saving the data

- .twb extension will save the file without the data, and will crash once the data files have been moved out of there original place.
- .twbx extension will save the file along with the data. It can be shared as ppt, pdf or image.
- .tds extension will save the data model. (only model not charts) (except for parameters everything is saved)
- .tdsx extension will save the data model along with the data.
- .hyper/.tde extensions is used to save extract file and can be shared over email or any other medium. It can also be used to work offline and improve performance. (basically used for extract data)

About .tds files
- Tableau Desktop saves your customizations to a local file in the Tableau data source (.tds) format. You can reuse the .tds file in different workbooks and share the .tds file with other users.
- Locally saved Tableau data source (.tds) files appear under Saved Data Sources, on the Connect page.
- .tds includes models(not data) and every customization except for login information and parameters.
- To save .tds file:

- Saving the .tds to the Datasources folder under My Tableau Repository makes the .tds available from the Connect page under Saved Data Sources.
- We can share the .tds file with others so they can benefit from the customizations and get right to analysis
- Renaming fields in data source requires you to replace references.

Charts
- Adding a dimension helps to create a stacked bar chart from bar chart.
- To create a stacked bar chart, simply drag another dimension to the marks card.
- By default, the shape that a Heat map uses is a "Square".
- A histogram looks like a bar chart but groups values for a continuous measure into ranges, or bins.
- Bins can only be created on measure. But we can create bins from dimensions too - they just have to be numeric.
- Area charts are typically used to represent accumulated totals over time and are the conventional way to display stacked lines.
- A Pareto chart is a type of chart that contains both bars and a line graph, where individual values are represented in descending order by bars, and the ascending cumulative total is represented by the line.
- A bullet graph is useful for comparing the performance of a primary measure to one or more other measures.
- Tree maps are effective at showing part-to-whole comparisons of data sets with long tails in their distribution and many levels of dimensions.
- When we create a bin from measure a new dimension is added.
- Tree chart can be changed to a text cloud or bubble chart by just changing the shape of marks.
- For creating variable size bins we use Calculated Fields.
Animations
- The animations are disabled by default and is of 0.3s.
- The default simultaneous animations are faster and work well when showing value changes in simpler charts and dashboards.
- Sequential animations take more time but make complex changes clearer by presenting them step-by-step.
- It can also be enabled for whole workbook
Geographical Fields
- We can convert textual fields to geographic data
- We can change geographical role of a dimension.
- Map types - Symbol Map and Filled Map.
- Geographic region data type is also a string.
Tableau Products
- Tableau Server
- Tableau Online
- Tableau Public Server (Visual Blog)
- Tableau Desktop (paid desktop tool)
- Tableau Public Desktop (free desktop tool)
- Tableau Reader (helps to view tableau dashboards created by tableau desktop)
- Tableau Prep Builder (mini ETL tool)
- Tableau Reader is a free desktop application that you can use to open and interact with data visualizations built in Tableau Desktop.
Exporting and Downloading Content
- You can generate a snapshot in one of the following formats: Image(.png), PDF, or PowerPoint.
- We can copy visualization from Worksheet and Dashboard by going to their respective menus.
- We can also download visualization from Worksheet and Dashboard by going to their respective menus.
- To download in PDF: File >> Print to PDF.
- To download multiple views use either PDF or PPT.
- We can export the data either in csv or MS Access format.
- We can also export the data either in cross tab or .csv format with options as summary, full data, full data with columns.
Extra Points
- Higher R2 value(0-1), Lower p value(โค0.05), a better chart.
- R-Squared value closest to 1 is the best trend model for a view.
- It is possible to join a maximum of 32 tables in Tableau.
- The Average function does not treat null values as zeros.
- When exporting a worksheet as an image in Tableau, png, jpg, bmp file formats are available. But when we copy the image it is in TIFF format.
- Values are always aggregated at level of granularity of the worksheet.
- All .tds files are saved in My Tableau Repository >> My Data Sources.
- Disaggregating data can be useful when you are viewing data as a scatter plot.
- By default, measures placed in a view are aggregated. Mostly you'll notice that the aggregation is SUM, but not ALWAYS.
- We can disable highlighting option for entire sheet.
- We can't connect Google Firebase to Tableau Desktop.
- Values are always aggregated at level of granularity of the worksheet.
- Aggregation can be put on both measure and dimension.
- Totals can be done either through Analytics pane or Analysis menu.
- Parameters and Sets can be used in calculations while Filters and Group can't be.
- Measure names and Measure values CANNOT be deleted in Tableau like other columns can. These are auto-generated. Calculated Fields, and Number of records can both be deleted.
- Clustering is a technique in Tableau which will identify marks with similar characteristics.
- Dimensions and Measures are always present in the Data Pane. Sets and Parameters get on to the data pane conditionally when you add them.
- Ctrl + M creates a new worksheet.
- Ctrl + D + M is used for Dashboard actions.
- A TDS file will only save a parameter if it is referenced by a calculated field.
- You can aggregate measures or dimensions, though it is more common to aggregate measures.
- The aggregation function attr() returns a * sign when there is more than one value in all the rows in the group.
- Calculated fields are processed in the database
- When using Min() or MAX() if either argument is null then the function returns null.
- Aliases can be created for the members of discrete dimensions only.
- Grand totals cannot be applied to continuous dimensions.
- Tableau uses the Standard Gregorian calendar by default.
- We can use Data Interpreter to clean/organize the data in Tableau.
- To concatenate fields, they must be of same data type. However, there is a workaround which we can use - Type casting.
- Aggregation for measures includes: Sum, Average, Std Devn, Count, Countd, Max, Min, Percentile. etc
- Aggregation for dimensions include: Max, Min, Count, Countd
- We can add totals from Analytics Pane and Analysis menu.
- Orange-Blue diverging palette is an excellent choice for both colour blind and sound-vision people.
- To concatenate fields, they must be of same data type.
- By default, aggregation is performed on row-level detail.
- Data can be exported to an MS Access DB (Data is the option name ) or csv file.
- Packaged workbooks have no data security and so data can be seen without any encryption.
- Tableau reader is free and less powerful version of Desktop with limited viewing
- capabilities. Doesnโt have the full editing features - can sort etc only basic things. Can
- open .twbx files.
- Aliases can be created for the members of discrete dimensions only. They cannot be created for continuous dimensions, dates, or measures.
- When using a published data source, you cannot create or edit aliases.
- Be sure to change to correct data types before creating extract.
- Percentile is available both in aggregation and calculation.
- For calculations, we can't combine an aggregated and disaggregated value.
- Joined tables are merged into single table.
Aptitude Test
270 practice questions across 9 categories asked in real Data Analyst interviews โ Quantitative Aptitude, Data Interpretation, Logical Reasoning, Statistics & Probability, SQL Aptitude, Excel Aptitude, Tableau Aptitude, Power BI Aptitude and Psychometric / Situational Judgment. Pick a section, answer question-by-question, and get a detailed explanation after every submit.