SQLV Unitwise Notes
SQLV Unitwise Notes
Data Warehouse:
A Data Warehouse refers to a centralized repository that
stores integrated data from multiple sources, designed to
support analytical reporting and decision-making.
It's not a database like a traditional Online Transaction
Processing (OLTP) system; instead, it's a system optimized
for reporting, analysis, and data-driven decision-making.
Concept Description
ETL Extract, Transform, Load – process of collecting data from sources, transforming it
into a usable format, and loading into the warehouse.
OLAP Online Analytical Processing – supports complex queries and analysis.
Schema Types Star Schema, Snowflake Schema, Galaxy/Fact Constellation Schema.
Fact Table Central table containing quantitative data (measurable events).
Dimension Table Contains descriptive attributes related to dimensions (e.g., time, product, region).
Snowflake Schema is also a type of multidimensional model used for data warehouses. In the
snowflake schema, the fact tables, dimension tables and sub-dimension tables are included.
This schema forms a snowflake structure with fact tables, dimension tables and sub-dimension
tables.
2
UNIT-WISE NOTES
If we need to handle complex data with frequent updates while minimizing storage, the
Snowflake Schema is more suitable.
OLAP vs OLTP:
OLTP (Online Transaction Processing) is the kind of system you interact with during everyday
activities. For example, when you book a movie ticket, transfer money through online banking, or
place an order on Amazon — you’re using an OLTP system. These systems handle a large number of
short transactions like insert, update, or delete operations. The focus is on speed and accuracy, because
users expect the system to respond immediately and reflect the latest changes. The data stored here is
current and usually highly structured, often using a normalized database design to avoid repetition.
OLAP (Online Analytical Processing) is used for analyzing large amounts of historical data to help in
decision-making. For example, a sales manager might want to analyze sales trends over the last year or
compare performance across regions. OLAP systems are optimized for reading data rather than writing
or updating it. They handle fewer queries compared to OLTP, but those queries are complex and
involve summarization, aggregation, and filtering. The data is often stored in denormalized forms,
like star or snowflake schemas, to make analysis faster and easier.
To put it simply:
OLTP is like a diary you write in every day – qu0069ck entries, small data, always up to
date.
OLAP is like a report card or business review – detailed, covers long periods, and used to
understand performance or plan ahead.
So, businesses use OLTP systems to run their daily operations, and they use OLAP systems to
understand how the business is doing and what decisions to take next.
Entity Constraints:
Entity constraints ensure that each row (or entity) in a table is unique and identifiable. These
constraints are mainly enforced through Primary Keys. For example, every record in a table must be
distinct and must have a unique identifier — just like every person has a unique ID or Aadhaar
number.
CREATE TABLE Student (
3
UNIT-WISE NOTES
Semantic Constraints:
Semantic constraints are rules that enforce the meaning and logic of data beyond just structure. They
ensure the data makes sense in the real-world context or business rules. These constraints check if the
data follows business logic or valid conditions — not just format or uniqueness.
For example:
A person's age must be greater than 0.
An employee’s salary cannot be negative.
Order date should not be in the future.
CREATE TABLE Employee (
emp_id INT PRIMARY KEY,
salary DECIMAL(10, 2),
CHECK (salary >= 0)
);
Introduction to SQL:
SQL (Structured Query Language) is the standard language used to communicate with and manage
relational databases. It helps you create, read, update, and delete data stored in tables.
Basic components of SQL:
1. Data Definition Language (DDL)
o Commands like CREATE, ALTER, and DROP that define or modify database structure.
2. Data Manipulation Language (DML)
o Commands like INSERT, UPDATE, DELETE to manage data.
3. Data Query Language (DQL)
o The SELECT command to retrieve data.
4. Data Control Language (DCL)
o Commands like GRANT and
REVOKE to control access.
What is SQL used for?
Creating databases and tables
Inserting, updating, and deleting data
Querying data to fetch specific information
4
UNIT-WISE NOTES
DDL Statements:
DDL statements are used to define and manage the structure of database objects like tables, indexes,
and schemas. They deal with creating, modifying, and deleting these objects.
CREATE
Used to create a new database object (table, index, view, etc.).
CREATE TABLE Students (
student_id INT PRIMARY KEY,
name VARCHAR(50),
age INT);
ALTER
Used to modify an existing database object, like adding or dropping columns.
ALTER TABLE Students ADD email VARCHAR(100);
DROP
Used to delete an existing database object completely.
DROP TABLE Students;
TRUNCATE
Removes all rows from a table but keeps the structure intact (faster than DELETE).
TRUNCATE TABLE Students;
RENAME
Changes the name of a database object.
RENAME TABLE Students TO Learners;
DML Statements:
DML statements are used to manage the data stored inside database tables. They help you insert,
update, delete, and retrieve data.
INSERT
Adds new rows (records) into a table.
INSERT INTO Students (student_id, name, age) VALUES (1, 'Alice', 20);
UPDATE
Modifies existing data in a table.
UPDATE Students SET age = 21 WHERE student_id = 1;
DELETE
Removes rows from a table based on a condition.
DELETE FROM Students WHERE student_id = 1;
SELECT
Retrieves data from one or more tables.
SELECT * FROM Students;
5
UNIT-WISE NOTES
Functio
Purpose Example Result
n
Total number of
COUNT() Counts number of rows SELECT COUNT(*) FROM Students;
students
SUM() Adds up values in a column SELECT SUM(marks) FROM Students; Total marks
AVG() Calculates average value SELECT AVG(marks) FROM Students; Average marks
MAX() Finds the highest value SELECT MAX(age) FROM Students; Oldest student’s age
Youngest student’s
MIN() Finds the lowest value SELECT MIN(age) FROM Students;
age
Inbuilt functions work on individual values (one row at a time), and return one result per row.
(a) String Functions
6
UNIT-WISE NOTES
CONCAT() Combines strings SELECT CONCAT(name, ' ', city) FROM Students; 'Alice Delhi'
Ordering:
Ordering is done using the ORDER BY clause in SQL. It helps you sort the result of a query based on
one or more columns, either in ascending (ASC) or descending (DESC) order.
SELECT column1, column2
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC];
Regular Expressions:
Regular Expressions (RegEx) are patterns used to match character combinations in strings. In SQL,
they allow powerful searching, filtering, and validation of textual data.
7
UNIT-WISE NOTES
Nested Queries:
A nested query, also called a subquery, is a query inside another query. It's used when the result of one
query depends on the output of another. The subquery is usually written inside parentheses (). Eg:
SELECT column FROM table
WHERE column = (SELECT column FROM another_table WHERE condition);
Use nested queries when:
The condition depends on a calculated or filtered result.
You need to compare rows with aggregated data.
You want to check for the existence or non-existence of related data.
Views:
A view is a virtual table based on the result of an SQL query. It doesn’t store data itself but displays
data from one or more tables. Think of it like a saved query that behaves like a table.
CREATE VIEW view_name AS SELECT column1, column2
FROM table_name WHERE condition;
Features of Views:
View does not store data; it shows data from underlying tables
You can query a view like a table: SELECT * FROM
view_name;
Useful to hide certain columns (e.g., salary) from users
Simple views (on single table, no joins/aggregates) can be updated sometimes
Venn
Concept Description Use Case SQL Syntax Example
Logic
Returns rows
common to both Employees with SELECT * FROM Employees E INNER
INNER JOIN A∩B
tables based on valid departments JOIN Departments D ON E.dept_id = D.id;
condition
All rows from left +
A⟕ B
All customers,
matched rows from SELECT * FROM Customers C LEFT
LEFT JOIN even those without
right; unmatched → JOIN Orders O ON C.id = O.customer_id;
orders
NULL
All rows from right +
A⟖ B
All orders, even if
matched rows from SELECT * FROM Customers C RIGHT
RIGHT JOIN customer info is
left; unmatched → JOIN Orders O ON C.id = O.customer_id;
missing
NULL
SELECT * FROM Customers C LEFT
A∪ B
All rows from both JOIN Orders O ON C.id = O.customer_id
FULL Combine all data
tables; unmatched UNION SELECT * FROM Customers C
OUTER JOIN from both tables
rows → NULL RIGHT JOIN Orders O ON C.id =
O.customer_id;
Cartesian product
Generate all color- SELECT * FROM Colors CROSS JOIN
CROSS JOIN (every row of A with A×B
size combinations Sizes;
every row of B)
VIEW with Virtual table created Based on Save employee- CREATE VIEW EmpDept AS SELECT
JOIN from join result JOIN department list for E.name, D.name FROM Employees E JOIN
8
UNIT-WISE NOTES
A∪ B
type reuse Departments D ON E.dept_id = D.id;
Combines results of 2 Merge unique
SELECT city FROM BranchA UNION
UNION queries; removes (no cities from two
SELECT city FROM BranchB;
A∪ B
duplicates repeats) tables
Combines results of 2 Combine sales
SELECT city FROM BranchA UNION
UNION ALL queries; keeps (with data from multiple
ALL SELECT city FROM BranchB;
duplicates repeats) sources
Returns only SELECT name FROM Customers
Customers who
INTERSECT common rows from A∩B INTERSECT SELECT name FROM
are also suppliers
both queries Suppliers;
Employees who
MINUS / Rows in first query SELECT name FROM Employees MINUS
A−B didn’t submit
EXCEPT not in second SELECT name FROM Timesheets;
timesheets
Sample Questions:
9
UNIT-WISE NOTES
Database Design
This is the planning phase where you decide what data you need, how it should be organized, and how tables
relate.
Steps:
Requirement Analysis
Create ER Model (Entities, Attributes, Relationships)
Normalize Data (remove redundancy)
Convert to Relational Schema
Example: Designing tables like Student(StudentID, Name) and Course(CourseID, Title) with a relationship table
Enrollment.
Database Creation
This is the implementation phase where the designed model is translated into SQL code using DDL (Data
Definition Language) – CREATE, ALTER, DROP.
Database Manipulation
This is the operation phase where data is added, updated, deleted, and queried using DML (Data Manipulation
Language) – INSERT, UPDATE, DELETE.
10
UNIT-WISE NOTES
Used in database design and information Used in architecture, interior design, or building
Domain
systems. planning.
To plan how information is stored, To plan how rooms, walls, furniture, or structures
Purpose
accessed, and connected. are arranged.
Output
Diagrams, schemas, SQL definitions. 2D/3D layout drawings or architectural blueprints.
Format
Relational Schema:
11
UNIT-WISE NOTES
A relational schema is a set of relational tables and associated items that are related to one another. All
of the base tables, views, indexes, domains, user roles, stored modules, and other items that a user
creates to fulfil the data needs of a particular enterprise or set of applications belong to one schema.
A relational schema defines the structure of a relational database table. It describes the table name, its
attributes (columns), and the types of data each column can hold.
Student → table name
StudentID, Name, Age, CourseID → attributes (columns)
INT, VARCHAR → data types
It may also include:
Primary Key: uniquely identifies a row (e.g., StudentID)
Foreign Key: links to another table (e.g., CourseID refers to Course table)
A relational schema organizes data into structured tables (like Excel sheets) with predefined columns
and rows. Each table has a schema (blueprint) that defines the column names, data types, and
relationships with other tables using keys (Primary Key, Foreign Key).
A non-relational schema (NoSQL) is more flexible. It stores data in formats like JSON, key-value
pairs, graphs, or documents instead of structured tables. It does not require a fixed schema.
Sample Questions:
1. Explain the difference between a data model and a floor model with examples.
2. What does DDL stand for? Mention two commands that come under DDL.
3. Explain the importance of data modeling in database design.
4. Differentiate DML statements. Include their syntax examples.
5. Explain how data modelling assists in designing a database that reflects real-world scenarios.
6. Discuss relational and non-relational schemas by discussing their use cases, advantages, and
disadvantages.
__________________________________________________________________________________
12
UNIT-WISE NOTES
Execution, Joins vs Nested Queries; Profitability Analysis, Profitable Customers, Customers Without
Orders, Fraud Detection, Problem Statement, Solution.
Rank Functions:
Rank functions assign a rank or position number to rows in a result set based on the values in one or
more columns. They are commonly used for sorting, ranking, and pagination.
SELECT
EmployeeID,
Salary,
RANK() OVER (ORDER BY Salary DESC) AS Rank,
DENSE_RANK() OVER (ORDER BY Salary DESC) AS DenseRank,
ROW_NUMBER() OVER (ORDER BY Salary DESC) AS RowNum
FROM Employees;
Partitioning (Windows Function):
Partitioning in SQL is used with window functions to divide the result set into groups (partitions), so
calculations are done within each group separately.
What does Partition mean?
Think of partitioning as splitting your data into chunks based on one or more columns.
Window functions (like RANK(), ROW_NUMBER(), SUM(), etc.) operate independently within each
partition.
SELECT EmployeeID, Department, Salary,
RANK() OVER (PARTITION BY Department ORDER BY Salary DESC) AS DeptRank FROM Employees;
Here, ranking resets for each Department because of PARTITION BY Department.
Employees are ranked within their own department, not across the entire table.
Why use Partition?
To perform calculations group-wise without collapsing the result into a single group (unlike GROUP
BY).
Useful for running totals, rankings, moving averages, etc., within subsets of data.
Lead and Lag Functions:
13
UNIT-WISE NOTES
Lead and Lag are window functions that allow you to access data from following or previous rows relative to
the current row without using a self-join.
What do they do?
LEAD(column, offset, default) returns the value from a row after the current row by offset (default is 1).
LAG(column, offset, default) returns the value from a row before the current row by offset (default is
1).
SELECT Month, Sales,
LAG(Sales, 1, 0) OVER (ORDER BY Month) AS PrevMonthSales,
LEAD(Sales, 1, 0) OVER (ORDER BY Month) AS NextMonthSales
FROM SalesData;
On the other hand, Stored Procedures are a set of precompiled SQL statements that perform a
sequence of operations, which can include querying, inserting, updating, or deleting data. Stored
procedures are executed explicitly using commands like EXEC or CALL. Unlike UDFs, stored
procedures can have side effects because they can modify the database and control transactions with
commits or rollbacks. They can also accept input and output parameters, allowing more complex and
flexible database operations, such as batch processing or business logic implementation.
CREATE PROCEDURE UpdateEmployeeSalary
@EmpID INT,
@NewSalary DECIMAL
AS
BEGIN
14
UNIT-WISE NOTES
UPDATE Employees
SET Salary = @NewSalary
WHERE EmployeeID = @EmpID;
END;
Cursors:
A cursor is a database object used to retrieve, manipulate, and navigate through rows of a result set one
row at a time. Unlike regular SQL queries that operate on entire sets of rows at once, cursors allow
row-by-row processing, which is useful when you need to perform operations on individual rows
sequentially.
When you need to process each row separately (e.g., complex calculations, conditional
updates).
When operations can’t be done in a single set-based SQL query.
How does a cursor work?
1. Declare the cursor with a SQL SELECT statement.
2. Open the cursor to establish the result set.
3. Fetch rows one by one from the cursor.
4. Perform required operations on each fetched row.
5. Close the cursor when done.
6. Deallocate the cursor to release resources.
DECLARE @StudentID INT;
15
UNIT-WISE NOTES
16
UNIT-WISE NOTES
Nested Queries (or subqueries) are queries written inside another query, often in the WHERE or
FROM clause. They allow you to filter or manipulate data using results from another query. Nested
queries are useful when you need to perform stepwise filtering or calculations, like finding employees
whose salary is above the average salary computed by a subquery.
Key Differences:
Joins combine tables horizontally to show related columns together.
Nested Queries are vertically nested queries where one query depends on the result of another.
Joins are generally faster and more readable for combining tables.
Nested queries are handy for filtering or conditional logic but can be less efficient if overused.
17
UNIT-WISE NOTES
Sample Questions:
1. Write an SQL query using PARTITION BY to compute the average score within each class.
2. Use the RANK() function in a query to find the top 3 most profitable customers.
3. Construct a query using LEAD() to display each order's amount alongside the following order’s
amount.
4. Demonstrate the use of RANK(), DENSE_RANK(), and ROW_NUMBER() on a sales table
and explain how their outputs differ.
5. Explain the logical sequence in which an SQL query is executed, with a practical example.
6. Develop a profitability analysis dashboard using advanced SQL techniques such as views and
user-defined functions (UDFs), intended for business executives.
__________________________________________________________________________________
Visualisations – Some Examples, Case Study Overview, Data Handling and Cleaning, Sanity Checks,
Outliers Analysis with Boxplots, Histograms; Distribution Plots, Styling Options, Pie - Chart and Bar
Chart, Scatter Plots, Pair Plots, Bar Graphs and Box Plots, Heatmaps, Line Charts, Stacked Bar Charts,
Plotly.
18
UNIT-WISE NOTES
Sanity Checks:
Sanity checks help validate the correctness, completeness, and consistency of data before analysis or
modeling. These are quick, essential checks to avoid misleading results.
1. Shape of the Dataset
2. Column Names and Types
3. Missing Values
4. Duplicates
5. Unique Values
6. Value Ranges
7. Logical Consistency
8. Date Validity (format)
9. Unnecessary Columns
10. Summary Statistics
19
UNIT-WISE NOTES
What is a Boxplot?
Visual summary of data distribution:
Median (Q2)
Quartiles (Q1: 25th percentile, Q3: 75th percentile)
IQR = Q3 − Q1
Whiskers: data within 1.5 * IQR from Q1 and Q3
Outliers: points outside the whiskers
Boxplot using Dearborn:
import seaborn as sns
import matplotlib.pyplot as plt
sns.boxplot(x=df['Salary'])
plt.title("Boxplot of Salary")
plt.show()
# Boxplot by Category
sns.boxplot(x='Department', y='Salary', data=df)
Identifying Outliers Programmatically
Q1 = df['Salary'].quantile(0.25)
Q3 = df['Salary'].quantile(0.75)
IQR = Q3 - Q1
# Define bounds
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
# Find outliers
outliers = df[(df['Salary'] < lower_bound) | (df['Salary'] > upper_bound)]
20
UNIT-WISE NOTES
21
UNIT-WISE NOTES
Styling enhances the readability and presentation of your plots. Python libraries like Matplotlib,
Seaborn, and Plotly offer flexible customization.
1. Set Global Style
plt.style.use('ggplot') # Other options: 'seaborn', 'bmh', 'classic'
1. Matplotlib Styling
import matplotlib.pyplot as plt
plt.plot(x, y, color='green', linestyle='--', marker='o', linewidth=2)
plt.title("Title", fontsize=16, color='navy')
plt.xlabel("X-axis", fontsize=12)
plt.ylabel("Y-axis", fontsize=12)
plt.grid(True)
plt.legend(["Label"])
plt.xticks(rotation=45)
plt.show()
2. Seaborn Styling:
import seaborn as sns
sns.set_style("whitegrid") # Options: whitegrid, darkgrid, white, dark, ticks
# Context (for scaling fonts etc)
sns.set_context("talk") # Options: paper, notebook, talk, poster
# Palette
sns.set_palette("pastel") # Other options: deep, muted, bright, dark, colorblind
3. Plotly Styling (interactive):
import plotly.express as px
fig = px.bar(df, x='Department', y='Revenue',
color='Region', title='Revenue by Department')
fig.update_layout(title_font_size=20, plot_bgcolor='lightgray')
fig.show()
22
UNIT-WISE NOTES
23
UNIT-WISE NOTES
HeatMaps:
A heatmap is a graphical representation of data where values are depicted by color. It’s especially
useful for visualizing correlation matrices, pivot tables, or any 2D data structure.
import seaborn as sns
import matplotlib.pyplot as plt
corr = df.corr(numeric_only=True)
sns.heatmap(corr, annot=True, cmap='coolwarm', linewidths=0.5)
plt.title("Correlation Matrix Heatmap")
24
UNIT-WISE NOTES
plt.show()
# Styling options
sns.heatmap(corr, annot=True, vmin=-1, vmax=1, cmap='RdBu')
25
UNIT-WISE NOTES
fig.show()
26
UNIT-WISE NOTES
2. Wide Range of Charts: Ideal for both simple and complex visualizations. Supports line, bar,
pie, scatter, box, heatmaps, and even 3D plots, maps, and gauges.
3. Web Integration: Visualizations can be exported as HTML or embedded in web apps (e.g.,
Dash).
4. Customization and Styling: Fully customizable layouts, colors, tooltips, and annotations.
Professional-grade formatting for reports and dashboards.
5. Easy to Learn: plotly.express offers a high-level API, very similar to Seaborn. Fast to prototype
visualizations.
Plotly is ideal when you need interactivity, presentation-ready visuals, or plan to build a dashboard or
web app. It complements Matplotlib and Seaborn well for modern data visualization needs.
Sample Questions:
1. Use Matplotlib to create a bar graph that displays and compares sales figures.
2. Conduct basic sanity checks on a dataset using Pandas, focusing on identifying and reporting
missing values.
3. Create an interactive line chart using Plotly to visualize trends over time.
4. Demonstrate how to clean a customer dataset by handling missing data and outliers using
appropriate data cleaning techniques.
5. Generate a distribution plot with Seaborn and explain how to assess skewness and kurtosis
from the visualization.
6. Describe the complete workflow in Python for loading, cleaning, and visualizing a dataset,
including code examples and key considerations at each step.
__________________________________________________________________________________
27
UNIT-WISE NOTES
Fixed, LOD Expressions: Exclude, Motion Charts, Bullet Charts, Gantt Charts, Likert Scale Charts,
Hexbin Charts, Best Practices.
1. Simplifies Complex Data: Makes large datasets more understandable. Converts numbers into
visuals for faster comprehension.
2. Reveals Patterns and Trends: Identifies relationships, correlations, and outliers. Helps spot
trends over time or across categories.
28
UNIT-WISE NOTES
3. Aids Decision-Making: Helps stakeholders make data-driven decisions. Visual summaries are
more persuasive than tables.
4. Enhances Communication: Makes storytelling with data more effective. Allows clear
presentation to both technical and non-technical audiences.
5. Interactive Exploration: Enables dynamic filtering and zooming (especially with tools like
Tableau). Encourages deeper insights through user-driven analysis.
1. User-Friendly Interface: Drag-and-drop functionality for building charts and dashboards. Ideal for
users with little or no coding background.
2. Powerful Data Connectivity: Connects to various data sources: Excel, SQL, cloud databases,
Google Sheets, etc.
3. Real-Time Analysis: Supports live and extract data connections for up-to-date insights.
4. Interactive Dashboards: Allows filtering, highlighting, and drill-down features for dynamic
storytelling.
5. Rich Visualizations: Offers a wide variety of charts: bar, line, pie, maps, scatter, treemaps, and
more.
6. Integration with Other Tools: Works with R, Python, and other BI tools for advanced analytics.
7. Sharing and Collaboration: Dashboards can be shared securely via Tableau Server, Tableau
Public, or Tableau Online.
Both are essential—exploratory to understand the data, and explanatory to communicate insights
effectively.
Exploratory Analysis asks: "What does the data tell us?"
Explanatory Analysis answers: "What do we want to show others from the data?"
Aspect Exploratory Analysis Explanatory Analysis
Purpose Discover patterns, trends, and Communicate specific findings or
29
UNIT-WISE NOTES
Tableau: Best for advanced, interactive dashboards and professional data storytelling.
Excel: Great for quick analysis and calculations, limited in visuals.
Power BI: Ideal for Microsoft users, balances ease, integration, and visualization.
30
UNIT-WISE NOTES
31
UNIT-WISE NOTES
Figure 3: Pivoting
Maps and Hierarchies:
Maps: Visualize geographic data using latitude/longitude or geographic roles (e.g., country,
city).
Hierarchies: Allow drill-down in dimensions (e.g., Year > Quarter > Month).
Figure 4: Maps
Pie Charts, Treemaps and Grouping:
Pie Charts: Show parts of a whole; best for few categories.
Treemaps: Use nested rectangles to show proportions in a hierarchy.
Grouping: Combine multiple dimension members into a single group.
32
UNIT-WISE NOTES
Figure 6: Treemaps
Dashboards – I:
Combine multiple visualizations on a single screen.
Add interactivity using filters, actions, and legends.
33
UNIT-WISE NOTES
34
UNIT-WISE NOTES
35
UNIT-WISE NOTES
36
UNIT-WISE NOTES
37
UNIT-WISE NOTES
Sample Questions:
1. Explain the difference between exploratory and explanatory data analysis in Tableau, using
practical examples.
38
UNIT-WISE NOTES
2. How do filters and parameters differ in Tableau, and what roles do they serve in dashboards?
3. Describe how joins are used in Tableau for combining datasets, and illustrate with a real-world
use case.
4. Discuss why stacked bar charts may be more effective than standard bar charts for displaying
category-wise comparisons within a group.
5. Explain how implementing filter actions in Tableau dashboards improves user experience and
decision-making.
6. What is a Pareto chart, and why is it valuable in business data analysis? Detail the process of
creating one in Tableau and its key applications.
39