电商销售与业绩分析 SQL 示例
显示原文'%20fill-opacity='.8'%20d='M3.256%203.913a3.083%203.083%200%200%200-.003%204.397L8%2012.998l4.743-4.684a3.085%203.085%200%200%200%20.001-4.4c-.6-.593-1.4-.914-2.233-.914a3.17%203.17%200%200%200-1.91.635L8%204.087l-.601-.452A3.17%203.17%200%200%200%205.489%203c-.834%200-1.634.321-2.233.913m10.19%205.111-4.748%204.69a.996.996%200%200%201-1.397%200L2.549%209.02a4.083%204.083%200%200%201%20.004-5.82A4.17%204.17%200%200%201%205.488%202c.907%200%201.787.29%202.512.835A4.17%204.17%200%200%201%2010.51%202c1.093%200%202.146.422%202.936%201.202a4.085%204.085%200%200%201%200%205.822'%20/%3e%3c/svg%3e)

| -- 1. 数据库结构 | |
| CREATE TABLE 客户 ( | |
| 客户ID INT PRIMARY KEY, | |
| 姓名 VARCHAR(100), | |
| 州名 CHAR(2) | |
| ); | |
| CREATE TABLE 订单 ( | |
| 订单ID INT PRIMARY KEY, | |
| 客户ID INT, | |
| 订单日期 DATE, | |
| 状态 VARCHAR(50), | |
| FOREIGN KEY (客户ID) REFERENCES 客户(客户ID) | |
| ); | |
| CREATE TABLE 订单项 ( | |
| 项目ID INT PRIMARY KEY, | |
| 订单ID INT, | |
| 产品 VARCHAR(100), | |
| 数量 INT, | |
| 单价 DECIMAL(10,2), | |
| FOREIGN KEY (订单ID) REFERENCES 订单(订单ID) | |
| ); | |
| -- 2. 测试数据 | |
| INSERT INTO 客户 VALUES (1, 'Ana Silva', 'SP'), (2, 'Bruno Souza', 'MG'), (3, 'Carla Costa', 'RJ'); | |
| INSERT INTO 订单 VALUES (101, 1, '2026-01-15', '已完成'), (102, 2, '2026-01-16', '已完成'), (103, 1, '2026-01-17', '已取消'); | |
| INSERT INTO 订单项 VALUES (1, 101, '笔记本电脑', 1, 3500.00), (2, 101, '鼠标', 2, 50.00), (3, 102, '键盘', 1, 150.00); | |
| -- 3. 报表查询:按客户和州统计的总销售额(仅计算已完成订单) | |
| SELECT | |
| c.姓名 AS 客户, | |
| c.州名, | |
| COUNT(DISTINCT p.订单ID) AS 总订单数, | |
| SUM(i.数量 * i.单价) AS 总消费金额 | |
| FROM 客户 c | |
| JOIN 订单 p ON c.客户ID = p.客户ID | |
| JOIN 订单项 i ON p.订单ID = i.订单ID | |
| WHERE p.状态 = '已完成' | |
| GROUP BY c.客户ID, c.姓名, c.州名 | |
| ORDER BY 总消费金额 DESC; |
参与讨论