今日SQL题:电商系统中用户消费与销售数据分析
难度系数:🌟☆☆☆☆☆☆☆☆☆
1、题目要求
- 1)、查询每位用户累计消费金额,按累计消费金额降序排序,并计算每位用户的消费排名:
- 2)、计算每种产品在不同月份的销售情况(总销售数量和总销售额),要求显示每个月的数据:
- 3)、找出在过去一个月内(相对于今天的日期)注册的用户中,消费最多的用户,并显示其详细信息
2、表和虚拟数据
现有以下四张表,记录了电商系统中商品目录、交易记录、交易明细、用户信息。
--商品目录表
CREATE TABLE Catalog (
CatalogID INT PRIMARY KEY, --商品ID
CatalogName VARCHAR(100), --商品名称
CategoryType VARCHAR(50), --商品类别
UnitPrice DECIMAL(10, 2) --商品单价
);
-- 交易记录表
CREATE TABLE Transactions (
TransactionID INT PRIMARY KEY, --交易ID
TransactionDate DATE, --交易日期
UserID INT -- 用户ID
);
--交易明细表
CREATE TABLE TransactionDetails (
DetailID INT PRIMARY KEY, --细节ID
TransactionID INT, --交易ID
CatalogID INT, --商品ID
Amount INT, --购买数量
UnitCost DECIMAL(10, 2), --商品单价
FOREIGN KEY (TransactionID) REFERENCES Transactions(TransactionID),--外键约束
FOREIGN KEY (CatalogID) REFERENCES Catalog(CatalogID) --外键约束
);
--用户信息表
CREATE TABLE Users (
UserID INT PRIMARY KEY, --用户ID
UserName VARCHAR(100), --姓名
UserEmail VARCHAR(100), --电子邮件
SignUpDate DATE --注册日期
);
INSERT INTO Catalog (CatalogID, CatalogName, CategoryType, UnitPrice) VALUES
(1, 'Laptop', 'Electronics', 1200.00),
(2, 'Smartphone', 'Electronics', 800.00),
(3, 'Headphones', 'Accessories', 150.00),
(4, 'Desk Chair', 'Furniture', 250.00),
(5, 'Mouse', 'Accessories', 50.00);
INSERT INTO Transactions (TransactionID, TransactionDate, UserID) VALUES
(1, '2024-08-01', 101),
(2, '2024-08-05', 102),
(3, '2024-08-07', 101),
(4, '2024-08-10', 103),
(5, '2024-08-12', 104);
INSERT INTO TransactionDetails (DetailID, TransactionID, CatalogID, Amount, UnitCost) VALUES
(1, 1, 1, 1, 1200.00),
(2, 1, 3, 2, 150.00),
(3, 2, 2, 1, 800.00),
(4, 3, 4, 1, 250.00),
(5, 3, 5, 3, 50.00),
(6, 4, 1, 2, 1200.00),
(7, 4, 2, 2, 800.00);
INSERT INTO Users (UserID, UserName, UserEmail, SignUpDate) VALUES
(101, 'Alice Wong', 'alice.wong@example.com', '2024-07-15'),
(102, 'Bob Lee', 'bob.lee@example.com', '2024-07-20'),
(103, 'Carol Kim', 'carol.kim@example.com', '2024-08-01'),
(104, 'David Smith', 'david.smith@example.com', '2024-08-05');
3、备注
1)、本场景题目是对本周所用知识的巩固,真实还原电商系统开发所用场景。
2)、本场景题目分为五个要求,每个要求单独实现,剩下两个难度提升题已发布。