Creating Database
-- Creating the schema
create schema supply_db;
-- Using the schema
use supply_db;
Creating tables Department
DROP TABLE IF EXISTS department;
CREATE TABLE department (
`Id` int NOT NULL,
`Name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`Id`)
);
DROP TABLE IF EXISTS category;
CREATE TABLE category (
`Id` int NOT NULL,
`Name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`Id`)
);
DROP TABLE IF EXISTS customer_info;
CREATE TABLE customer_info (
`Id` int NOT NULL,
`City` varchar(25) DEFAULT NULL,
`First_Name` varchar(15) DEFAULT NULL,
`Last_Name` varchar(15) DEFAULT NULL,
`Segment` varchar(15) DEFAULT NULL,
`State` varchar(2) DEFAULT NULL,
`Street` varchar(40) DEFAULT NULL,
`Zipcode` varchar(5) DEFAULT NULL,
PRIMARY KEY (`Id`)
);
DROP TABLE IF EXISTS product_info ;
CREATE TABLE product_info (
`Product_Id` int NOT NULL,
`Product_Name` varchar(50) DEFAULT NULL,
`Category_Id` int DEFAULT NULL,
`Department_Id` int DEFAULT NULL,
`Product_Price` decimal(12,2) DEFAULT NULL,
PRIMARY KEY (`Product_Id`)
);
DROP TABLE IF EXISTS ordered_items;
CREATE TABLE ordered_items (
`Order_Item_Id` int NOT NULL,
`Order_Id` int NOT NULL,
`Item_Id` int NOT NULL,
`Quantity` int DEFAULT NULL,
`Sales` decimal(12,2) DEFAULT NULL,
PRIMARY KEY (`Order_Item_Id`)
);
DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
`Order_Id` int NOT NULL,
`Type` varchar(10) DEFAULT NULL,
`Real_Shipping_Days` int DEFAULT NULL,
`Scheduled_Shipping_Days` int DEFAULT NULL,
`Customer_Id` int DEFAULT NULL,
`Order_City` varchar(20) DEFAULT NULL,
`Order_Date` date DEFAULT NULL,
`Order_Region` varchar(15) DEFAULT NULL,
`Order_State` varchar(20) DEFAULT NULL,
`Order_Status` varchar(20) DEFAULT NULL,
`Shipping_Mode` varchar(20) DEFAULT NULL,
PRIMARY KEY (`Order_Id`)
);
Inserting values in the tables
INSERT INTO department VALUES (1,'Indoors'),(2,'Fitness'),(3,'Footwear'),(4,'Apparel'),(5,'Golf'),(6,'Outdoors'),(7,'Fan Shop'),(8,'Book Shop'),(9,'Discs Shop'),(10,'Technology'),(11,'Pet Shop'),(12,'Health and Beauty ');
INSERT INTO category VALUES (2,'Soccer'),(3,'Baseball & Softball'),(4,'Basketball'),(5,'Lacrosse'),(6,'Tennis & Racquet'),(7,'Hockey'),(9,'Cardio Equipment'),(10,'Strength Training'),(11,'Fitness Accessories'),(12,'Boxing & MMA'),(13,'Electronics'),(16,'As Seen on TV!'),(17,'Cleats'),(18,'Mens Footwear'),(24,'Womens Apparel'),(26,'Girls Apparel'),(29,'Shop By Sport'),(30,'Mens Golf Clubs'),(31,'Womens Golf Clubs'),(32,'Golf Apparel'),(33,'Golf Shoes'),(34,'Golf Bags & Carts'),(35,'Golf Gloves'),(36,'Golf Balls'),(37,'Electronics'),(38,'Kids Golf Clubs'),(40,'Accessories'),(41,'Trade-In'),(43,'Camping & Hiking'),(44,'Hunting & Shooting'),(45,'Fishing'),(46,'Indoor/Outdoor Games'),(48,'Water Sports'),(59,'Books '),(60,'Baby '),(61,'CDs '),(62,'Cameras '),(63,'Childrens Clothing'),(64,'Computers'),(65,'Consumer Electronics'),(66,'Crafts'),(67,'DVDs'),(68,'Garden'),(69,'Health and Beauty'),(70,'Mens Clothing'),(71,'Music'),(72,'Pet Supplies'),(73,'Sporting Goods'),(74,'Toys'),(75,'Video Games'),(76,'Womens Clothing');
INSERT INTO customer_info VALUES (1,'Brownsville','Richard','Hernandez','Consumer','TX','6303 Heather Plaza','78521'),(8,'Lawrence','Megan','Smith','Corporate','MA','3047 Foggy Forest Plaza','01841'),(16,'Caguas','Tiffany','Smith','Corporate','PR','6651 Iron Port','00725'),(17,'Taylor','Mary','Robinson','Consumer','MI','1325 Noble Pike','48180');
INSERT INTO product_info VALUES (37,'adidas Kids F5 Messi FG Soccer Cleat',3,2,34.99),(44,'adidas Mens F10 Messi TRX FG Soccer Cleat',3,2,59.99),(93,'Under Armour Mens Tech II T-Shirt',5,2,24.99),(116,'Nike Mens Comfort 2 Slide',6,2,44.99),(134,'Nike Womens Legend V-Neck T-Shirt',7,2,25),(135,'Nike Dri-FIT Crew Sock 6 Pack',7,2,22),(172,'Nike Womens Tempo Shorts',9,3,30),(191,'Nike Mens Free 5.0+ Running Shoe',9,3,99.99),(235,'Under Armour Hustle Storm Medium Duffle Bag',11,3,34.99),(249,'Under Armour Womens Micro G Skulpt Running S',12,3,54.97),(273,'Under Armour Kids Mercenary Slide',13,3,27.99),(276,'Under Armour Womens Ignite Slide',13,3,31.99);
INSERT INTO ordered_items VALUES (50787,20337,1004,1,399.98),(50791,20338,365,2,119.98),(50788,20338,502,2,100),(50789,20338,191,4,399.96),(50790,20338,365,4,239.96),(50800,20346,1004,1,399.98),(50801,20346,502,3,150),(50836,20361,365,1,59.99),(50838,20363,403,1,129.99),(50839,20363,822,2,95.98),(50837,20363,627,4,159.96),(50840,20364,403,1,129.99),(50841,20364,191,2,199.98),(50842,20365,502,2,100),(50843,20365,1004,1,399.98),(50844,20365,957,1,299.98),(50845,20366,365,2,119.98),(50847,20368,191,5,499.95),(50874,20380,957,1,299.98),(50875,20380,191,3,299.97),(50876,20380,804,5,99.95),(50877,20380,1073,1,199.99),(50878,20381,1073,1,199.99),(50879,20381,191,1,99.99),(50880,20381,1004,1,399.98),(50949,20407,957,1,299.98);
INSERT INTO orders VALUES (20337,'DEBIT',3,4,8838,'Kolhapur','2018-10-23','South Asia','Maharashtra','ON_HOLD','Standard Class'),(20338,'PAYMENT',4,4,5231,'Kolhapur','2018-10-23','South Asia','Maharashtra','PENDING_PAYMENT','Standard Class'),(20346,'DEBIT',2,2,6365,'Bareilly','2018-10-23','South Asia','Uttar Pradesh','COMPLETE','Second Class'),(20361,'TRANSFER',2,2,5217,'Raipur','2018-10-24','South Asia','Rajastan','PENDING','Second Class'),(20363,'TRANSFER',4,2,7667,'Raipur','2018-10-24','South Asia','Rajastan','PENDING','Second Class');
Part 1:
use supply_db ;
Question : Golf related products
List all products in categories related to golf. Display the Product_Id, Product_Name in the output. Sort the output in the order of product id.
Hint: You can identify a Golf category by the name of the category that contains golf.
*/
-- **********************************************************************************************************************************
/*
Question : Most sold golf products
Find the top 10 most sold products (based on sales) in categories related to golf. Display the Product_Name and Sales column in the output. Sort the output in the descending order of sales.
Hint: You can identify a Golf category by the name of the category that contains golf.
HINT:
Use orders, ordered_items, product_info, and category tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
/*
Question: Segment wise orders
Find the number of orders by each customer segment for orders. Sort the result from the highest to the lowest
number of orders.The output table should have the following information:
-Customer_segment
-Orders
*/
-- **********************************************************************************************************************************
/*
Question : Percentage of order split
Description: Find the percentage of split of orders by each customer segment for orders that took six days
to ship (based on Real_Shipping_Days). Sort the result from the highest to the lowest percentage of split orders,
rounding off to one decimal place. The output table should have the following information:
-Customer_segment
-Percentage_order_split
HINT:
Use the orders and customer_info tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
Part 2:
use supply_db ;
/* Question: Month-wise NIKE sales
Description:
Find the combined month-wise sales and quantities sold for all the Nike products.
The months should be formatted as ‘YYYY-MM’ (for example, ‘2019-01’ for January 2019).
Sort the output based on the month column (from the oldest to newest). The output should have following columns :
-Month
-Quantities_sold
-Sales
HINT:
Use orders, ordered_items, and product_info tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
/*
Question : Costliest products
Description: What are the top five costliest products in the catalogue? Provide the following information/details:
-Product_Id
-Product_Name
-Category_Name
-Department_Name
-Product_Price
Sort the result in the descending order of the Product_Price.
HINT:
Use product_info, category, and department tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
/*
Question : Cash customers
Description: Identify the top 10 most ordered items based on sales from all the ‘CASH’ type orders.
Provide the Product Name, Sales, and Distinct Order count for these items. Sort the table in descending
order of Order counts and for the cases where the order count is the same, sort based on sales (highest to
lowest) within that group.
HINT: Use orders, ordered_items, and product_info tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
/*
Question : Customers from texas
Obtain all the details from the Orders table (all columns) for customer orders in the state of Texas (TX),
whose street address contains the word ‘Plaza’ but not the word ‘Mountain’. The output should be sorted by the Order_Id.
HINT: Use orders and customer_info tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
/*
Question: Home office
For all the orders of the customers belonging to “Home Office” Segment and have ordered items belonging to
“Apparel” or “Outdoors” departments. Compute the total count of such orders. The final output should contain the
following columns:
-Order_Count
*/
-- **********************************************************************************************************************************
/*
Question : Within state ranking
For all the orders of the customers belonging to “Home Office” Segment and have ordered items belonging
to “Apparel” or “Outdoors” departments. Compute the count of orders for all combinations of Order_State and Order_City.
Rank each Order_City within each Order State based on the descending order of their order count (use dense_rank).
The states should be ordered alphabetically, and Order_Cities within each state should be ordered based on their rank.
If there is a clash in the city ranking, in such cases, it must be ordered alphabetically based on the city name.
The final output should contain the following columns:
-Order_State
-Order_City
-Order_Count
-City_rank
HINT: Use orders, ordered_items, product_info, customer_info, and department tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
/*
Question : Underestimated orders
Rank (using row_number so that irrespective of the duplicates, so you obtain a unique ranking) the
shipping mode for each year, based on the number of orders when the shipping days were underestimated
(i.e., Scheduled_Shipping_Days < Real_Shipping_Days). The shipping mode with the highest orders that meet
the required criteria should appear first. Consider only ‘COMPLETE’ and ‘CLOSED’ orders and those belonging to
the customer segment: ‘Consumer’. The final output should contain the following columns:
-Shipping_Mode,
-Shipping_Underestimated_Order_Count,
-Shipping_Mode_Rank
HINT: Use orders and customer_info tables from the Supply chain dataset.
*/
-- **********************************************************************************************************************************
Hire Database expert to get advance level database expert help, assignment help, project help. You can send your assignment requirement details at:
realcode4you@gmail.com
Comments