-
Notifications
You must be signed in to change notification settings - Fork 0
/
DB 511. Game Play Analysis I
74 lines (64 loc) · 2.83 KB
/
DB 511. Game Play Analysis I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Create table If Not Exists Activity (player_id int, device_id int, event_date date, games_played int)
Truncate table Activity
insert into Activity (player_id, device_id, event_date, games_played) values ('1', '2', '2016-03-01', '5')
insert into Activity (player_id, device_id, event_date, games_played) values ('1', '2', '2016-05-02', '6')
insert into Activity (player_id, device_id, event_date, games_played) values ('2', '3', '2017-06-25', '1')
insert into Activity (player_id, device_id, event_date, games_played) values ('3', '1', '2016-03-02', '0')
insert into Activity (player_id, device_id, event_date, games_played) values ('3', '4', '2018-07-03', '5')
Table: Activity
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| player_id | int |
| device_id | int |
| event_date | date |
| games_played | int |
+--------------+---------+
(player_id, event_date) is the primary key of this table.
This table shows the activity of players of some games.
Each row is a record of a player who logged in and played a number of games (possibly 0) before logging
out on someday using some device.
Write an SQL query to report the first login date for each player.
Return the result table in any order.
The query result format is in the following example.Example 1:
Input:
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 |
+-----------+-----------+------------+--------------+
Output:
+-----------+-------------+
| player_id | first_login |
+-----------+-------------+
| 1 | 2016-03-01 |
| 2 | 2017-06-25 |
| 3 | 2016-03-02 |
+-----------+-------------+
给定一张名为Activity的表,其中包含以下字段:
player_id:int,玩家ID
device_id:int,设备ID
event_date:date,登录日期
games_played:int,玩游戏的次数
请编写一个SQL查询,报告每个玩家的第一次登录日期。
答案解释:
SELECT player_id, MIN(event_date) AS first_login
FROM Activity
GROUP BY player_id;
这个查询使用GROUP BY子句,按player_id列对Activity表中的行进行分组。MIN函数用于选择每组的最小event_date,代表每个玩家的第一次登录日期。结果是一个包含两列的表:player_id和first_login。
# Write your MySQL query statement below
select player_id,
MIN(event_date) 'first_login'
from activity
group by player_id;
# Write your MySQL query statement below
select
player_id,
min(event_date) as first_login
from activity
group by player_id;