背景 一家游戏公司希望分析其平台新玩家的用户粘性和消费潜力。他们需要识别出在特定月份注册,并在后续一个月内有消费行为的玩家,同时评估他们的游戏进度(等级)。此举旨在帮助运营团队更好地理解高价值新玩家的用户画像。 表结构和字段说明 表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_idusernamelevelcreation_date
101ShadowBlade452025-03-05
102RookieMist152025-03-10
103AncientOne802025-02-15
104Ghost252025-03-20

transactions

transaction_idplayer_iditem_namecostpurchase_time
1101Excalibur Sword99.992025-04-02 10:00:00
2101Health Potion4.502025-04-10 11:30:00
3102Starter Pack9.992025-04-05 14:00:00
4103Phoenix Feather199.992025-04-08 16:00:00
5101Magic Shield45.002025-04-15 18:00:00
6102Health Potion4.502025-04-20 09:00:00
7104Mount29.992025-03-28 17:00:00

示例数据查询结果表

player_idusernamecurrent_levelplayer_categorytotal_april_spending
101ShadowBlade45高阶玩家149.49
102RookieMist15新秀玩家14.49
加载中...