今日SQL题难度:🌟☆☆☆☆☆☆☆☆☆
1、题目要求
- 计算每个产品类别在每个月的总销售额和总销量。
- 找出每个月销售额最高的产品类别,显示类别名称、销售月份、总销售额和总销量。
2、表和虚拟数据
现有两个表:Products 和 Sales,记录了产品信息以及产品的销售记录。
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName NVARCHAR(100),
Category NVARCHAR(50)
);
CREATE TABLE Sales (
SaleID INT PRIMARY KEY,
ProductID INT,
SaleDate DATE,
Quantity INT,
SaleAmount DECIMAL(10, 2)
);
INSERT INTO Products (ProductID, ProductName, Category) VALUES
(1, 'Laptop', 'Electronics'),
(2, 'Smartphone', 'Electronics'),
(3, 'Desk Chair', 'Furniture');
INSERT INTO Sales (SaleID, ProductID, SaleDate, Quantity, SaleAmount) VALUES
(101, 1, '2023-06-15', 1, 1500.00),
(102, 1, '2023-06-25', 1, 1500.00),
(103, 2, '2023-07-01', 2, 2000.00),
(104, 2, '2023-07-20', 1, 1000.00),
(105, 3, '2023-08-05', 3, 750.00),
(106, 3, '2023-08-25', 2, 500.00);
3、查询结果
4、解题思路
1、sum函数计算每个产品类别的总销售额和总销量,按产品类别和销售月份分组(使用format()函 数格式化日期格式)
2、使用窗口函数rowNumber()找出月销售额最高的产品类别,按月份和类别排序