From eef9d13e92418b61c24a58750e07bd4b6e2fa865 Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Sun, 2 Feb 2025 18:05:45 +0000 Subject: [PATCH 01/14] Employees With Managers --- .../01-01-employees_managers.sql" | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 "Scripts/SolvedByAkshay\\/01-01-employees_managers.sql" diff --git "a/Scripts/SolvedByAkshay\\/01-01-employees_managers.sql" "b/Scripts/SolvedByAkshay\\/01-01-employees_managers.sql" new file mode 100644 index 0000000..c9b6969 --- /dev/null +++ "b/Scripts/SolvedByAkshay\\/01-01-employees_managers.sql" @@ -0,0 +1,20 @@ +WITH +employees_with_managers AS ( + SELECT + e.employeeId, + e.firstName AS EmployeeFirstName, + e.lastName AS EmployeeLastName, + e.title AS EmployeeTitle, + e.startDate AS EmployeeStartDate, + e.managerId AS EmployeesManagerID, + m.firstName AS ManagerFirstname, + m.lastName AS ManagerLastname, + m.title AS ManagerTitle, + m.startDate AS ManagerStartDate, + COALESCE(m.managerId, 'NA') AS ManagersManagerID + FROM employee AS e + LEFT JOIN employee AS m + ON e.managerId = m.employeeId +) +SELECT * FROM employees_with_managers +ORDER BY employeeId From 19a453bd999b42fca3dc1f69562644ebc98e4275 Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Sun, 2 Feb 2025 18:37:08 +0000 Subject: [PATCH 02/14] Edited folder name --- .../SolvedByAkshay/01-01-employees_managers.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "Scripts/SolvedByAkshay\\/01-01-employees_managers.sql" => Scripts/SolvedByAkshay/01-01-employees_managers.sql (100%) diff --git "a/Scripts/SolvedByAkshay\\/01-01-employees_managers.sql" b/Scripts/SolvedByAkshay/01-01-employees_managers.sql similarity index 100% rename from "Scripts/SolvedByAkshay\\/01-01-employees_managers.sql" rename to Scripts/SolvedByAkshay/01-01-employees_managers.sql From 959e52fa6f7c5320f9c8c24bdb07c9fd5790dc01 Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Mon, 3 Feb 2025 08:56:08 +0000 Subject: [PATCH 03/14] Salespeople with 0 Sales --- .vscode/settings.json | 1 - .../01-02-salespeople_with_0_sales.sql | 26 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 Scripts/SolvedByAkshay/01-02-salespeople_with_0_sales.sql diff --git a/.vscode/settings.json b/.vscode/settings.json index 9bc98c8..20de972 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,7 +18,6 @@ "screencastMode.onlyKeyboardShortcuts": true, "terminal.integrated.fontSize": 18, "window.zoomLevel": 3, - "workbench.activityBar.visible": true, "workbench.colorTheme": "Default Light+", "workbench.fontAliasing": "antialiased", "workbench.statusBar.visible": true, diff --git a/Scripts/SolvedByAkshay/01-02-salespeople_with_0_sales.sql b/Scripts/SolvedByAkshay/01-02-salespeople_with_0_sales.sql new file mode 100644 index 0000000..9ea643a --- /dev/null +++ b/Scripts/SolvedByAkshay/01-02-salespeople_with_0_sales.sql @@ -0,0 +1,26 @@ +WITH +Salespeople AS( + SELECT + employeeId, + firstName, + lastName, + title, + startDate + FROM employee + WHERE title = 'Sales Person' +), +Salespeople_Sales AS ( + SELECT + e.employeeId, + e.firstName, + e.lastName, + e.title, + e.startDate, + s.salesAmount + FROM Salespeople AS e + LEFT JOIN sales AS s + ON e.employeeId = s.employeeId +) +SELECT * FROM Salespeople_Sales +WHERE salesAmount IS NULL + \ No newline at end of file From 954a6c3a630ad59485fe4c7bc32a3e798c756587 Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Tue, 4 Feb 2025 09:39:09 +0000 Subject: [PATCH 04/14] customer with sales --- .../SolvedByAkshay/01-03-customer_sales.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Scripts/SolvedByAkshay/01-03-customer_sales.sql diff --git a/Scripts/SolvedByAkshay/01-03-customer_sales.sql b/Scripts/SolvedByAkshay/01-03-customer_sales.sql new file mode 100644 index 0000000..065be28 --- /dev/null +++ b/Scripts/SolvedByAkshay/01-03-customer_sales.sql @@ -0,0 +1,19 @@ +WITH +Sales_by_customer AS ( + SELECT + customerId, + SUM(salesAmount) AS TotalSales + FROM sales + GROUP BY customerId +), +joined AS( +SELECT + * +FROM customer AS c +FULL OUTER JOIN Sales_by_customer AS s +ON c.customerid = s.customerid +WHERE c.customerId IS NULL OR s.customerId IS NULL + +) +SELECT * FROM joined +ORDER BY firstName \ No newline at end of file From 3ce0a314fc03c84eb79e698092ead65f86f84f2d Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Tue, 4 Feb 2025 10:01:57 +0000 Subject: [PATCH 05/14] Cars Sold by Salesperson --- .../02-01-cars_sold_by_employee | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Scripts/SolvedByAkshay/02-01-cars_sold_by_employee diff --git a/Scripts/SolvedByAkshay/02-01-cars_sold_by_employee b/Scripts/SolvedByAkshay/02-01-cars_sold_by_employee new file mode 100644 index 0000000..5b6dca5 --- /dev/null +++ b/Scripts/SolvedByAkshay/02-01-cars_sold_by_employee @@ -0,0 +1,27 @@ +WITH +employees AS ( + SELECT + employeeId, + firstName, + LastName + FROM employee +), +car_sales AS ( + SELECT + employeeId, + COUNT(InventoryID) AS CarsSold + FROM sales + GROUP BY employeeId +), +sales_by_employees AS ( + SELECT + e.employeeId, + e.firstName, + e.lastName, + s.CarsSold + FROM car_sales AS s + LEFT JOIN employees AS e + ON e.employeeId = s.employeeId +) +SELECT * FROM sales_by_employees +ORDER BY CarsSold DESC From 8a43503c5ea7fdb2b3eb5f24c7a9836d7dfa1793 Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Tue, 4 Feb 2025 11:02:24 +0000 Subject: [PATCH 06/14] changed file name --- ...2-01-cars_sold_by_employee => 02-01-cars_sold_by_employee.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Scripts/SolvedByAkshay/{02-01-cars_sold_by_employee => 02-01-cars_sold_by_employee.sql} (100%) diff --git a/Scripts/SolvedByAkshay/02-01-cars_sold_by_employee b/Scripts/SolvedByAkshay/02-01-cars_sold_by_employee.sql similarity index 100% rename from Scripts/SolvedByAkshay/02-01-cars_sold_by_employee rename to Scripts/SolvedByAkshay/02-01-cars_sold_by_employee.sql From 59a7ec2856dbc5585c482fb795b92506d737f53e Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Tue, 4 Feb 2025 11:47:08 +0000 Subject: [PATCH 07/14] Cheapest and Expensive Car Sold --- .../02-02-least_and_most_expensive_car.sql | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Scripts/SolvedByAkshay/02-02-least_and_most_expensive_car.sql diff --git a/Scripts/SolvedByAkshay/02-02-least_and_most_expensive_car.sql b/Scripts/SolvedByAkshay/02-02-least_and_most_expensive_car.sql new file mode 100644 index 0000000..263e620 --- /dev/null +++ b/Scripts/SolvedByAkshay/02-02-least_and_most_expensive_car.sql @@ -0,0 +1,30 @@ +WITH +Car_Price_By_Salesperson AS ( +SELECT + employeeId, + MAX(salesAmount) AS expensive, + MIN(salesAmount) AS Cheapest +FROM sales +WHERE date(soldDate) >= '2023-01-01' +GROUP BY employeeID + +), +Salesperson AS ( + SELECT + employeeId, + firstName, + lastName + FROM employee +), +joined AS( + SELECT + e.employeeId, + e.firstName, + e.lastName, + s.Expensive, + s.Cheapest + FROM Car_Price_By_Salesperson AS s + LEFT JOIN Salesperson AS e + ON s.employeeId = e.employeeId +) +SELECT * FROM joined \ No newline at end of file From 9d633023b5273e29a0bf4dba39a16e80857b202a Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Tue, 4 Feb 2025 11:54:58 +0000 Subject: [PATCH 08/14] Top Salespeople --- .../SolvedByAkshay/02-03-top_sales_people.sql | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Scripts/SolvedByAkshay/02-03-top_sales_people.sql diff --git a/Scripts/SolvedByAkshay/02-03-top_sales_people.sql b/Scripts/SolvedByAkshay/02-03-top_sales_people.sql new file mode 100644 index 0000000..78fdc56 --- /dev/null +++ b/Scripts/SolvedByAkshay/02-03-top_sales_people.sql @@ -0,0 +1,32 @@ +WITH +Car_Price_By_Salesperson AS ( +SELECT + employeeId, + COUNT(*) AS CarsSold, + MAX(salesAmount) AS expensive, + MIN(salesAmount) AS Cheapest +FROM sales +WHERE date(soldDate) >= '2023-01-01' +GROUP BY employeeID +HAVING COUNT(*) > 5 +), +Salesperson AS ( + SELECT + employeeId, + firstName, + lastName + FROM employee +), +joined AS( + SELECT + e.employeeId, + e.firstName, + e.lastName, + s.CarsSold, + s.Expensive, + s.Cheapest + FROM Car_Price_By_Salesperson AS s + LEFT JOIN Salesperson AS e + ON s.employeeId = e.employeeId +) +SELECT * FROM joined \ No newline at end of file From 69819a9932de4edbbe759635843e1146a98f43f0 Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Tue, 4 Feb 2025 12:01:17 +0000 Subject: [PATCH 09/14] Sales Per Year --- Scripts/SolvedByAkshay/03-01-sales_per_year.sql | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Scripts/SolvedByAkshay/03-01-sales_per_year.sql diff --git a/Scripts/SolvedByAkshay/03-01-sales_per_year.sql b/Scripts/SolvedByAkshay/03-01-sales_per_year.sql new file mode 100644 index 0000000..c40c2f6 --- /dev/null +++ b/Scripts/SolvedByAkshay/03-01-sales_per_year.sql @@ -0,0 +1,9 @@ +WITH +sales_per_year AS( + SELECT + strftime('%Y',soldDate) AS Sale_Year, + ROUND(SUM(SalesAmount), 2) AS AnnualSales + FROM Sales + GROUP BY strftime('%Y',soldDate) +) +SELECT * FROM sales_per_year \ No newline at end of file From 564f6965beb21399f54e7eb4330e8c9ab9858f42 Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Wed, 5 Feb 2025 08:25:43 +0000 Subject: [PATCH 10/14] Sales per month 2021 pivoted --- .../03-02-sales_per_employee_2021.sql | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Scripts/SolvedByAkshay/03-02-sales_per_employee_2021.sql diff --git a/Scripts/SolvedByAkshay/03-02-sales_per_employee_2021.sql b/Scripts/SolvedByAkshay/03-02-sales_per_employee_2021.sql new file mode 100644 index 0000000..ac152d5 --- /dev/null +++ b/Scripts/SolvedByAkshay/03-02-sales_per_employee_2021.sql @@ -0,0 +1,43 @@ +WITH +sales_people AS( + SELECT + employeeid, + firstname, + lastname + FROM employee +), +sales_2021 AS( + SELECT + employeeId, + strftime('%m', soldDate) AS Month, + salesAmount AS MonthlySale + FROM sales + WHERE strftime('%Y', soldDate) = '2021' + GROUP BY employeeId, strftime('%m', soldDate) +), +sales_pivoted AS( + SELECT + employeeId, + SUM(CASE WHEN month = '01' THEN MonthlySale ELSE 0 END) AS JanSales, + SUM(CASE WHEN month = '02' THEN Monthlysale ELSE 0 END) AS FebSales, + SUM(CASE WHEN month = '03' THEN Monthlysale ELSE 0 END) AS MarSales, + SUM(CASE WHEN month = '04' THEN Monthlysale ELSE 0 END) AS AprSales, + SUM(CASE WHEN month = '05' THEN Monthlysale ELSE 0 END) AS MaySales, + SUM(CASE WHEN month = '06' THEN Monthlysale ELSE 0 END) AS JunSales, + SUM(CASE WHEN month = '07' THEN Monthlysale ELSE 0 END) AS JulSales, + SUM(CASE WHEN month = '08' THEN Monthlysale ELSE 0 END) AS AugSales, + SUM(CASE WHEN month = '09' THEN Monthlysale ELSE 0 END) AS SepSales, + SUM(CASE WHEN month = '10' THEN Monthlysale ELSE 0 END) AS OctSales, + SUM(CASE WHEN month = '11' THEN Monthlysale ELSE 0 END) AS NovSales, + SUM(CASE WHEN month = '12' THEN Monthlysale ELSE 0 END) AS DecSales + + FROM sales_2021 + + GROUP By employeeId + +) +SELECT e.firstName, e.lastName, s.* FROM sales_pivoted AS s +LEFT JOIN sales_people AS e + ON s.employeeId = e.employeeId + + From 14b9f123fd4e8566dc6b195eb19b06ab29890c3b Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Wed, 5 Feb 2025 08:42:38 +0000 Subject: [PATCH 11/14] Electric Cars Sales --- .../03-03-electric_car_sales.sql | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Scripts/SolvedByAkshay/03-03-electric_car_sales.sql diff --git a/Scripts/SolvedByAkshay/03-03-electric_car_sales.sql b/Scripts/SolvedByAkshay/03-03-electric_car_sales.sql new file mode 100644 index 0000000..11c90c7 --- /dev/null +++ b/Scripts/SolvedByAkshay/03-03-electric_car_sales.sql @@ -0,0 +1,26 @@ +WITH +electric_models_inventory AS ( + SELECT + m.modelId, + m.model, + i.inventoryId + FROM model AS m + LEFT JOIN inventory AS i + ON m.modelId = i.modelId + WHERE m.EngineType = 'Electric' +), +electric_model_sales AS( + SELECT + s.salesId, + s.customerId, + s.employeeId, + s.soldDate, + s.inventoryId, + m.model, + s.salesAmount + FROM Sales AS s + INNER JOIN electric_models_inventory AS m + ON s.inventoryid = m.inventoryId + +) +SELECT * FROM electric_model_sales From 6331afe58b6639de4bf4e42eed1d0d55c5202ebf Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Fri, 7 Feb 2025 09:34:55 +0000 Subject: [PATCH 12/14] Ranked Sales for salesperon --- .../04-01-ranking_most_sold_cars.sql | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Scripts/SolvedByAkshay/04-01-ranking_most_sold_cars.sql diff --git a/Scripts/SolvedByAkshay/04-01-ranking_most_sold_cars.sql b/Scripts/SolvedByAkshay/04-01-ranking_most_sold_cars.sql new file mode 100644 index 0000000..1591254 --- /dev/null +++ b/Scripts/SolvedByAkshay/04-01-ranking_most_sold_cars.sql @@ -0,0 +1,31 @@ +WITH +Sales_by_salesperson AS ( + SELECT + s.employeeId, + e.firstName, + e.lastName, + s.inventoryId, + i.modelId, + m.model, + COUNT(s.inventoryId) AS cars_sold + FROM sales AS s + LEFT JOIN inventory AS i + ON s.inventoryId = i.inventoryId + LEFT JOIN model AS m + ON i.modelId = m.modelId + LEFT JOIN employee AS e + ON s.employeeId = e.employeeId + GROUP BY e.firstName, + e.lastName, i.modelId, m.model +), +ranked_sales AS ( + SELECT + firstName, + lastName, + model, + cars_sold, + RANK() OVER(PARTITION BY firstName, lastName ORDER BY cars_sold desc) AS Rank + FROM sales_by_Salesperson + +) +SELECT * FROM ranked_sales \ No newline at end of file From 8f11c4c004d38f00e252a4ba6b114c6218c407ab Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Fri, 7 Feb 2025 09:51:47 +0000 Subject: [PATCH 13/14] Monthly sales with running totals --- .../SolvedByAkshay/04-02-sales_per_month.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Scripts/SolvedByAkshay/04-02-sales_per_month.sql diff --git a/Scripts/SolvedByAkshay/04-02-sales_per_month.sql b/Scripts/SolvedByAkshay/04-02-sales_per_month.sql new file mode 100644 index 0000000..2868f98 --- /dev/null +++ b/Scripts/SolvedByAkshay/04-02-sales_per_month.sql @@ -0,0 +1,18 @@ +WITH +sales_per_month AS( + SELECT + strftime('%m', soldDate) AS month, + strftime('%Y', soldDate) AS year, + SUM(Salesamount) AS monthly_sale + FROM Sales + GROUP BY strftime('%Y-%m', soldDate) +) +SELECT + month, + year, + monthly_sale, + SUM(monthly_sale) OVER( + PARTITION BY year + ORDER BY month) AS annual_running_total +FROM sales_per_month +ORDER BY Year,month \ No newline at end of file From bee032b27583967e7d2d3ae5e0a8ed135ed4879b Mon Sep 17 00:00:00 2001 From: Akshay Gera <98545133+akshay-gera@users.noreply.github.com> Date: Fri, 7 Feb 2025 10:04:22 +0000 Subject: [PATCH 14/14] cars sold current vs pre month --- .../SolvedByAkshay/04-03-cars_sold_this_month | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Scripts/SolvedByAkshay/04-03-cars_sold_this_month diff --git a/Scripts/SolvedByAkshay/04-03-cars_sold_this_month b/Scripts/SolvedByAkshay/04-03-cars_sold_this_month new file mode 100644 index 0000000..3f4c270 --- /dev/null +++ b/Scripts/SolvedByAkshay/04-03-cars_sold_this_month @@ -0,0 +1,17 @@ +WITH +sales_per_month AS( + SELECT + strftime('%m', soldDate) AS month, + strftime('%Y', soldDate) AS year, + COUNT(*) AS monthly_sale + FROM Sales + GROUP BY strftime('%Y-%m', soldDate) +) +SELECT + month, + year, + monthly_sale AS current_month_sale, + LAG(monthly_sale,1,0) OVER( + PARTITION BY year + ORDER BY month) AS last_month_sale +FROM sales_per_month \ No newline at end of file