LeetCode——第五百一十二题:游戏玩法分析 ||(数据分析SQL)

本文介绍如何通过SQL查询来获取每个游戏玩家首次登录时使用的设备ID。利用子查询的方法找到每位玩家最早的登录日期,并据此匹配相应的设备信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

Table: Activity

Column NameType
player_idint
device_idint
event_datedate
games_playedint

(player_id, event_date) 是这个表的两个主键
这个表显示的是某些游戏玩家的游戏活动情况
每一行是在某天使用某个设备登出之前登录并玩多个游戏(可能为0)的玩家的记录
请编写一个 SQL 查询,描述每一个玩家首次登陆的设备名称

查询结果格式在以下示例中:

Activity table:

player_iddevice_idevent_dategames_played
122016-03-015
122016-05-026
232017-06-251
312016-03-020
342018-07-035

Result table:

player_iddevice_id
12
23
31
思路(子查询)
  1. 首先使用min函数和group by找到所有玩家初次在平台使用设备玩游戏的时间
  2. 将步骤1的结果作为子查询,外层再套用一层,查找player_id和device_id即可
运行成功的代码
SELECT DISTINCT PLAYER_ID,DEVICE_ID
FROM ACTIVITY
WHERE (PLAYER_ID,EVENT_DATE) IN 
(SELECT PLAYER_ID,MIN(EVENT_DATE)
FROM ACTIVITY
GROUP BY PLAYER_ID )
运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值