Scenario Series 13 -- 𝐑𝐞𝐚𝐥-𝐖𝐨𝐫𝐥𝐝 𝐀𝐩𝐩𝐥𝐢𝐜𝐚𝐭𝐢𝐨𝐧𝐬 𝐨𝐟 Aggregate
Functions
CREATE TABLE Sales (
SaleID INT PRIMARY KEY,
ProductName VARCHAR(100),
SaleAmount DECIMAL(10, 2),
SaleDate DATE
);
INSERT INTO Sales (SaleID, ProductName, SaleAmount,
SaleDate)
VALUES
(1, 'Product A', 100.00, '2024-01-01'),
(2, 'Product B', 200.00, '2024-01-02'),
(3, 'Product A', 150.00, '2024-01-03'),
(4, 'Product C', 250.00, '2024-01-04'),
(5, 'Product B', 300.00, '2024-01-05'),
(6, 'Product D', 400.00, '2024-01-06'),
(7, 'Product A', 120.00, '2024-01-07'),
(8, 'Product C', 220.00, '2024-01-08'),
(9, 'Product D', 320.00, '2024-01-09'),
(10, 'Product B', 210.00, '2024-01-10'),
(11, 'Product C', 130.00, '2024-01-11'),
(12, 'Product A', 140.00, '2024-01-12'),
(13, 'Product B', 180.00, '2024-01-13'),
(14, 'Product D', 340.00, '2024-01-14'),
(15, 'Product A', 160.00, '2024-01-15'),
(16, 'Product B', 190.00, '2024-01-16'),
(17, 'Product C', 260.00, '2024-01-17'),
(18, 'Product D', 280.00, '2024-01-18'),
(19, 'Product A', 110.00, '2024-01-19'),
(20, 'Product B', 250.00, '2024-01-20');
Follow me on LinkedIn – Shivakiran kotur
-- 1. Total Sales per Product - Products with total
sales greater than $500
SELECT ProductName, SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY ProductName
HAVING SUM(SaleAmount) > 500;
-- 2. Total Sales per Product - Products with total
sales between $500 and $800
SELECT ProductName, SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY ProductName
HAVING SUM(SaleAmount) BETWEEN 500 AND 800;
-- 3. Total Sales per Product - Products with total
sales exactly $860
SELECT ProductName, SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY ProductName
HAVING SUM(SaleAmount) = 860;
Follow me on LinkedIn – Shivakiran kotur
-- 4. Number of Sales per Product - Products with
more than 5 sales records
SELECT ProductName, COUNT(*) AS NumberOfSales
FROM Sales
GROUP BY ProductName
HAVING COUNT(*) > 5;
-- 5. Total Sales per Date - Dates with total sales
above $250
SELECT SaleDate, SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY SaleDate
HAVING SUM(SaleAmount) > 1000;
-- 6. Total Sales per Product - Products with total
sales less than $1000 and more than $700
SELECT ProductName, SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY ProductName
HAVING SUM(SaleAmount) < 1000 AND SUM(SaleAmount) >
700;
Follow me on LinkedIn – Shivakiran kotur
-- 7. Total Sales per Product - Products with
exactly 4 sales records
SELECT ProductName, COUNT(*) AS NumberOfSales,
SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY ProductName
HAVING COUNT(*) = 4;
-- 8. Total Sales per Month - Months with total
sales greater than $1000
SELECT DATEPART(MONTH, SaleDate) AS SaleMonth,
SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY DATEPART(MONTH, SaleDate)
HAVING SUM(SaleAmount) > 1000;
Follow me on LinkedIn – Shivakiran kotur
-- 9. Total Sales per Day of Week - Days of the
week with total sales above $500
SELECT DATENAME(WEEKDAY, SaleDate) AS DayOfWeek,
SUM(SaleAmount) AS TotalSales
FROM Sales
GROUP BY DATENAME(WEEKDAY, SaleDate)
HAVING SUM(SaleAmount) > 500;
Follow me on LinkedIn – Shivakiran kotur