leetcode512. 游戏玩法分析 II(SQL)简单

问题描述:

Table: Activity

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

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

Activity table:
+-----------+-----------+------------+--------------+
| player_id | device_id | event_date | games_played |
+-----------+-----------+------------+--------------+
| 1         | 2         | 2016-03-01 | 5            |
| 1         | 2         | 2016-05-02 | 6            |
| 2         | 3         | 2017-06-25 | 1            |
| 3         | 1         | 2016-03-02 | 0            |
| 3         | 4         | 2018-07-03 | 5            |
+-----------+-----------+------------+--------------+

Result table:
+-----------+-----------+
| player_id | device_id |
+-----------+-----------+
| 1         | 2         |
| 2         | 3         |
| 3         | 1         |
+-----------+-----------+
sql语句,拿去既可以运行:

SELECT
	a.player_id AS 'player_id',
	a.device_id AS 'device_id' 
FROM
	activity AS a, ( SELECT player_id, min( event_date ) AS 'first_login' FROM activity GROUP BY player_id ) AS b 
WHERE
	a.player_id = b.player_id 
	AND a.event_date = b.first_login
我要刷100道算法题,第76道

猜你喜欢

转载自blog.csdn.net/guoqi_666/article/details/120470597