Skip to content
1 change: 0 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
20 changes: 20 additions & 0 deletions Scripts/SolvedByAkshay/01-01-employees_managers.sql
Original file line number Diff line number Diff line change
@@ -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
26 changes: 26 additions & 0 deletions Scripts/SolvedByAkshay/01-02-salespeople_with_0_sales.sql
Original file line number Diff line number Diff line change
@@ -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

19 changes: 19 additions & 0 deletions Scripts/SolvedByAkshay/01-03-customer_sales.sql
Original file line number Diff line number Diff line change
@@ -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
27 changes: 27 additions & 0 deletions Scripts/SolvedByAkshay/02-01-cars_sold_by_employee.sql
Original file line number Diff line number Diff line change
@@ -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
30 changes: 30 additions & 0 deletions Scripts/SolvedByAkshay/02-02-least_and_most_expensive_car.sql
Original file line number Diff line number Diff line change
@@ -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
32 changes: 32 additions & 0 deletions Scripts/SolvedByAkshay/02-03-top_sales_people.sql
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions Scripts/SolvedByAkshay/03-01-sales_per_year.sql
Original file line number Diff line number Diff line change
@@ -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
43 changes: 43 additions & 0 deletions Scripts/SolvedByAkshay/03-02-sales_per_employee_2021.sql
Original file line number Diff line number Diff line change
@@ -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


26 changes: 26 additions & 0 deletions Scripts/SolvedByAkshay/03-03-electric_car_sales.sql
Original file line number Diff line number Diff line change
@@ -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
31 changes: 31 additions & 0 deletions Scripts/SolvedByAkshay/04-01-ranking_most_sold_cars.sql
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions Scripts/SolvedByAkshay/04-02-sales_per_month.sql
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions Scripts/SolvedByAkshay/04-03-cars_sold_this_month
Original file line number Diff line number Diff line change
@@ -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