写在前面
-
难度:简单
-
收费(会员可看),我不是会员。
题目
Activity table:

Result table:

题目是:Write a SQL query that reports the device that is first logged in for each player 翻译一下就是写一条sql,显示每个玩家首次登录的设备号(同时显示玩家ID)
思路
如果做过题1,那这道题就简单一些了。我们可以先求出每次玩家首次登录的信息。
SELECT player_id,MIN(event_date)
FROM activity
GROUP BY player_id
有了这个信息,我们可以根据它们找到指定id、指定时间的设备id信息。 但此处可能有很多方法:
方法1,用in来做
SELECT player_id,device_id
FROM activity
WHERE (player_id,event_date) IN (
SELECT player_id,MIN(event_date)
FROM activity
GROUP BY player_id)

方法2,用表关联来做
SELECT a.player_id,a.device_id
FROM activity AS a,
(
SELECT player_id,MIN(event_date) AS mindate
FROM activity
GROUP BY player_id) AS b
WHERE a.`event_date`=b.mindate
AND a.`player_id`=b.player_id