1.关于cross join(sql92的笛卡尔乘积的解释)
    第一步:
    SELECT
    FROM activity a1
    image.png
    代表 player_id 有 1 和 3
    第二步:
    SELECT

    FROM activity a1,activity a2
    WHERE a1.player_id=a2.player_id
    image.png
    这是以 player_id 为 筛选条件进行 交叉1连接的,出来的记录为 33+22=13条
    第三步:
    SELECT
    FROM activity a1,activity a2
    WHERE a1.device_id=a2.device_id
    image.png
    这是以 device_id 为 筛选条件进行交叉连接,出来的记录数为 2
    2+3=7条
    总结:
    笛卡尔乘积的结果,与进行筛选的条件是密切相关的
    第四步:
    SELECT *
    FROM activity a1,activity a2
    WHERE a1.player_id=a2.player_id
    AND a2.event_date>=a1.event_date
    image.png
    用条件 a1.event_date>=a2.event_date 从第二步中选出满足累计条件的
    然后:可以分组,用 a2.player_id 和 a2.event_date 进行分组,对sum(a1.games_played)进行求和得出结论image.png
    连接表的顺序是a1,a2,然后应该是拿a2的每一条纪录去匹配a1的记录,根据筛选条件,选出满足条件的