0% found this document useful (0 votes)
8 views5 pages

CREATE TABLE Sales

The document outlines the creation and manipulation of a sales database, including a table structure for storing sales data and various SQL operations such as Roll-Up, Drill-Down, Slice, Dice, and Pivot. It provides examples of SQL queries to aggregate and analyze sales data by location, item, and time period. Additionally, it includes the creation of views for detailed sales breakdowns by month.

Uploaded by

Tejal Gawade
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views5 pages

CREATE TABLE Sales

The document outlines the creation and manipulation of a sales database, including a table structure for storing sales data and various SQL operations such as Roll-Up, Drill-Down, Slice, Dice, and Pivot. It provides examples of SQL queries to aggregate and analyze sales data by location, item, and time period. Additionally, it includes the creation of views for detailed sales breakdowns by month.

Uploaded by

Tejal Gawade
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

CREATE TABLE sales (

id INT AUTO_INCREMENT PRIMARY KEY,

location VARCHAR(50),

item VARCHAR(50),

time_period VARCHAR(50),

sales_amount DECIMAL(10, 2)

);

INSERT INTO sales (location, item, time_period, sales_amount) VALUES

('Vancouver', 'mobile', 'Q1', 100.00),

('Vancouver', 'modem', 'Q1', 150.00),

('Vancouver', 'phone', 'Q1', 120.00),

('Vancouver', 'mobile', 'Q2', 110.00),

('Vancouver', 'modem', 'Q2', 160.00),

('Vancouver', 'phone', 'Q2', 130.00),

('Toronto', 'mobile', 'Q1', 90.00),

('Toronto', 'modem', 'Q1', 140.00),

('Toronto', 'phone', 'Q1', 100.00),

('Toronto', 'phone', 'Q2', 105.00),

('New York', 'mobile', 'Q1', 120.00),

('New York', 'modem', 'Q1', 170.00),

('New York', 'phone', 'Q1', 140.00),

('New York', 'phone', 'Q2', 145.00);

Select * from sales

1. Roll-Up Operation (from Cities to Countries)


SELECT
CASE
WHEN location IN ('Vancouver', 'Toronto') THEN 'Canada'
WHEN location = 'New York' THEN 'USA'
END AS country,
item,
time_period,
SUM(sales_amount) AS total_sales
FROM sales
GROUP BY country, item, time_period;

2. Drill-Down Operation (Divide each Quarter into 3 Months)


SELECT
location,
item,
CASE
WHEN time_period = 'Q1' THEN 'Apr-June'
WHEN time_period = 'Q2' THEN 'Jul-Sept'
WHEN time_period = 'Q3' THEN 'Oct-Dec'
WHEN time_period = 'Q4' THEN 'Jan-Mar'
END AS month,
sales_amount / 3 AS sales_amount
FROM sales
ORDER BY location, item, month;

Drill-Down Operation (Divide each Quarter into 3 Months). ( Manually)

CREATE VIEW sales_drill_down AS


SELECT
location,
item,
CASE
WHEN time_period = 'Q1' THEN 'Apr'
WHEN time_period = 'Q2' THEN 'Jul'
-- Add cases for Q3 and Q4 if needed
END AS month,
CASE
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'mobile' THEN 30.00
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'modem' THEN 50.00
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'phone' THEN 40.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'mobile' THEN 30.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'modem' THEN 60.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'phone' THEN 50.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'mobile' THEN 40.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'modem' THEN 70.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'phone' THEN 60.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'mobile' THEN 56.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'modem' THEN 75.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'phone' THEN 80.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'mobile' THEN 45.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'modem' THEN 95.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'phone' THEN 55.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'mobile' THEN 65.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'modem' THEN 110.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'phone' THEN 85.00
-- Add cases for other months
END AS sales_amount
FROM sales
UNION ALL
SELECT
location,
item,
CASE
WHEN time_period = 'Q1' THEN 'May'
WHEN time_period = 'Q2' THEN 'Aug'
-- Add cases for Q3 and Q4 if needed
END AS month,
CASE
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'mobile' THEN 40.00
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'modem' THEN 50.00
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'phone' THEN 40.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'mobile' THEN 30.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'modem' THEN 50.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'phone' THEN 25.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'mobile' THEN 40.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'modem' THEN 50.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'phone' THEN 40.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'mobile' THEN 25.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'modem' THEN 35.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'phone' THEN 25.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'mobile' THEN 25.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'modem' THEN 35.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'phone' THEN 25.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'mobile' THEN 25.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'modem' THEN 40.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'phone' THEN 30.00
-- Add cases for other months
END AS sales_amount
FROM sales
UNION ALL
SELECT
location,
item,
CASE
WHEN time_period = 'Q1' THEN 'Jun'
WHEN time_period = 'Q2' THEN 'Sep'
-- Add cases for Q3 and Q4 if needed
END AS month,
CASE
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'mobile' THEN 30.00
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'modem' THEN 50.00
WHEN time_period = 'Q1' AND location = 'Vancouver' AND item = 'phone' THEN 40.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'mobile' THEN 30.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'modem' THEN 30.00
WHEN time_period = 'Q1' AND location = 'Toronto' AND item = 'phone' THEN 25.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'mobile' THEN 40.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'modem' THEN 50.00
WHEN time_period = 'Q1' AND location = 'New York' AND item = 'phone' THEN 40.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'mobile' THEN 29.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'modem' THEN 50.00
WHEN time_period = 'Q2' AND location = 'Vancouver' AND item = 'phone' THEN 25.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'mobile' THEN 25.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'modem' THEN 25.00
WHEN time_period = 'Q2' AND location = 'Toronto' AND item = 'phone' THEN 25.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'mobile' THEN 35.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'modem' THEN 35.00
WHEN time_period = 'Q2' AND location = 'New York' AND item = 'phone' THEN 30.00
-- Add cases for other months
END AS sales_amount
FROM sales;

SELECT
location,
item,
month,
sales_amount
FROM sales_drill_down
ORDER BY
location,
item,
CASE month
WHEN 'Apr' THEN 1
WHEN 'May' THEN 2
WHEN 'Jun' THEN 3
WHEN 'Jul' THEN 4
WHEN 'Aug' THEN 5
WHEN 'Sep' THEN 6
WHEN 'Oct' THEN 7
WHEN 'Nov' THEN 8
WHEN 'Dec' THEN 9
WHEN 'Jan' THEN 10
WHEN 'Feb' THEN 11
WHEN 'Mar' THEN 12
END;

3. Slice Operation (for time Q1)


SELECT
location,
item,
time_period,
sales_amount
FROM sales
WHERE time_period = 'Q1';

4. Dice Operation (for specific conditions)


SELECT
location,
item,
time_period,
sales_amount
FROM sales
WHERE location IN ('Toronto', 'Vancouver')
AND time_period IN ('Q1', 'Q2')
AND item IN ('mobile', 'modem');

5. Pivot Operation
SELECT
item,
SUM(CASE WHEN location = 'Vancouver' AND time_period = 'Q1' THEN sales_amount ELSE
0 END) AS Vancouver,
SUM(CASE WHEN location = 'Toronto' AND time_period = 'Q1' THEN sales_amount ELSE 0
END) AS Toronto,
SUM(CASE WHEN location = 'New York' AND time_period = 'Q1' THEN sales_amount ELSE
0 END) AS NewYork
FROM sales
GROUP BY item;

You might also like