Game Play Analysis I

easy database sql group by

Problem

Activity(player_id, device_id, event_date, games_played). Return the first login date per player.

Inputrows = [(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[(1,'2016-03-01'),(2,'2017-06-25'),(3,'2016-03-02')]
One pass keeping a hash map player_id → min(event_date).

SELECT player_id, MIN(event_date) AS first_login
FROM Activity
GROUP BY player_id;
Time: O(n) Space: O(players)