暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

单挑力扣(LeetCode)SQL笔试题:511. 游戏玩法分析 I(难度:简单)

跟强哥学SQL 2023-01-13
164
题目:511. 游戏玩法分析 I
(通过次数69,622 | 提交次数97,574,通过率71.35%)
    活动表Activity:
    +--------------+---------+
    | Column Name | Type |
    +--------------+---------+
    | player_id | int |
    | device_id | int |
    | event_date | date |
    | games_played | int |
    +--------------+---------+
    表的主键是 (player_id, event_date)。
    这张表展示了一些游戏玩家在游戏平台上的行为活动。
    每行数据记录了一名玩家在退出平台之前,当天使用同一台设备登录平台后打开的游戏的数目(可能是 0 个)。


    写一条 SQL查询语句获取每位玩家 第一次登陆平台的日期。


    查询结果的格式如下所示:
    Activity 表:
    +-----------+-----------+------------+--------------+
    | 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 表:
    +-----------+-------------+
    | player_id | first_login |
    +-----------+-------------+
    | 1 | 2016-03-01 |
    | 2 | 2017-06-25 |
    | 3 | 2016-03-02 |
    +-----------+-------------+


    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/game-play-analysis-i

      #测试数据
      Create table If Not Exists Activity (player_id int, device_id int, event_date date, games_played int);


      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');
      解题思路:
      Activity表保存了玩家所有的活动记录。包括玩家ID、活动日期(登陆日期)。
      题目要求:查询每个玩家第一次登陆平台的日期。
      一个玩家可以有多次登录记录,但登陆日期最小的日期即为第一次登陆日期。又因为要求计算每个玩家的最小登陆日期,所以,可以先按玩家ID分组,再使用聚合函数MIN得出登陆日期的最小值。
      参考SQL:
        select
        player_id,
        min(event_date) first_login
        from Activity
        group by player_id;

        单挑力扣(LeetCode)SQL笔试题:181. 超过经理收入的员工(难度:简单)
        单挑力扣(LeetCode)SQL笔试题:2292. 连续两年有 3 个及以上订单的产品(难度:中等)
        单挑力扣(LeetCode)SQL笔试题:2394. 开除员工(难度:中等)

        文章转载自跟强哥学SQL,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论