背景 一家游戏公司希望分析其平台新玩家的用户粘性和消费潜力。他们需要识别出在特定月份注册,并在后续一个月内有消费行为的玩家,同时评估他们的游戏进度(等级)。此举旨在帮助运营团队更好地理解高价值新玩家的用户画像。 表结构和字段说明 表1:玩家信息表 (players) player_id: (INT, 主键) 玩家的唯一标识。 username: (VARCHAR) 玩家的昵称。 level: (INT) 玩家的当前等级。 creation_date: (DATE) 玩家账户的创建日期。 表2:游戏内交易表 (transactions) transaction_id: (INT, 主键) 交易的唯一标识。 player_id: (INT) 进行交易的玩家ID。 item_name: (VARCHAR) 购买的道具名称。 cost: (DECIMAL) 道具的价格。 purchase_time: (DATETIME) 购买行为发生的精确时间。 3. 问题 任务要求 请查询所有在 2025年3月 创建账户,并且在 2025年4月 期间(2025-04-01 至 2025-04-30)有过至少一次消费记录的玩家。对于这些玩家,请计算他们在4月份的总消费金额,并根据他们的当前等级进行分类:等级大于等于30级的为“高阶玩家”,否则为“新秀玩家”。 查询结果要求 请返回以下字段: 玩家ID (player_id) 玩家昵称 (username) 当前等级 (current_level) 玩家分类 (player_category) 4月总消费金额 (total_april_spending),结果四舍五入保留2位小数。 排序规则 查询结果请先按player_category降序排列(即 "高阶玩家" 在前),然后按total_april_spending降序排列,最后按player_id升序排列。
示例1
输入
-- 创建玩家信息表
CREATE TABLE players (
player_id INT,
username VARCHAR(50),
level INT,
creation_date DATE
);
-- 创建游戏内交易表
CREATE TABLE transactions (
transaction_id INT,
player_id INT,
item_name VARCHAR(50),
cost DECIMAL(10, 2),
purchase_time DATETIME
);
-- 插入示例数据
-- 玩家信息
INSERT INTO players (player_id, username, level, creation_date) VALUES
(101, 'ShadowBlade', 45, '2025-03-05'), -- 目标玩家
(102, 'RookieMist', 15, '2025-03-10'), -- 目标玩家
(103, 'AncientOne', 80, '2025-02-15'), -- 注册月份不对
(104, 'Ghost', 25, '2025-03-20'); -- 目标玩家,但在4月无消费
-- 游戏内交易
INSERT INTO transactions (transaction_id, player_id, item_name, cost, purchase_time) VALUES
(1, 101, 'Excalibur Sword', 99.99, '2025-04-02 10:00:00'),
(2, 101, 'Health Potion', 4.50, '2025-04-10 11:30:00'),
(3, 102, 'Starter Pack', 9.99, '2025-04-05 14:00:00'),
(4, 103, 'Phoenix Feather', 199.99, '2025-04-08 16:00:00'), -- 玩家不符合注册时间
(5, 101, 'Magic Shield', 45.00, '2025-04-15 18:00:00'),
(6, 102, 'Health Potion', 4.50, '2025-04-20 09:00:00'),
(7, 104, 'Mount', 29.99, '2025-03-28 17:00:00'); -- 消费月份不对
输出
player_id|username|current_level|player_category|total_april_spending
101|ShadowBlade|45|高阶玩家|149.49
102|RookieMist|15|新秀玩家|14.49
说明
示例数据表
players
| player_id | username | level | creation_date |
|---|
| 101 | ShadowBlade | 45 | 2025-03-05 |
| 102 | RookieMist | 15 | 2025-03-10 |
| 103 | AncientOne | 80 | 2025-02-15 |
| 104 | Ghost | 25 | 2025-03-20 |
transactions
| transaction_id | player_id | item_name | cost | purchase_time |
|---|
| 1 | 101 | Excalibur Sword | 99.99 | 2025-04-02 10:00:00 |
| 2 | 101 | Health Potion | 4.50 | 2025-04-10 11:30:00 |
| 3 | 102 | Starter Pack | 9.99 | 2025-04-05 14:00:00 |
| 4 | 103 | Phoenix Feather | 199.99 | 2025-04-08 16:00:00 |
| 5 | 101 | Magic Shield | 45.00 | 2025-04-15 18:00:00 |
| 6 | 102 | Health Potion | 4.50 | 2025-04-20 09:00:00 |
| 7 | 104 | Mount | 29.99 | 2025-03-28 17:00:00 |
示例数据查询结果表
| player_id | username | current_level | player_category | total_april_spending |
|---|
| 101 | ShadowBlade | 45 | 高阶玩家 | 149.49 |
| 102 | RookieMist | 15 | 新秀玩家 | 14.49
|
加载中...