zoukankan      html  css  js  c++  java
  • LeetCode 【困难】数据库-第1194:锦标赛优胜者

    题目

    数据

    结果

    解答

    1.因为分了两场,所以把两场连接为一场

    select first_player player_id,first_score score from matches #
    union all
    select second_player player_id,second_score score from matches
    

    2. 连接players表,按组别和玩家 分组计算得分

    select group_id,players.player_id,sum(score) score1 
    from players
    right join(
                select first_player player_id,first_score score from matches #
                union 
                select second_player player_id,second_score score from matches
               ) a
    on a.player_id = players.player_id
    group by group_id,player_id
    order by group_id
    

    3.按照组别分组,按分数排名(排名的时候,按照分数和用户id排名)!!!!!!

    select group_id,player_id,score1,
           rank() over (partition by group_id order by score1 desc,player_id) rn 
    from(
            select group_id,players.player_id,sum(score) score1 
            from players
            right join(
                      select first_player player_id,first_score score from matches #
                      union 
                      select second_player player_id,second_score score from matches
                       ) a
            on a.player_id = players.player_id
            group by group_id,player_id
            order by group_id
        ) b 
    

    4.筛选出来第一名的人,(按照分数和id)

    select group_id,player_id ,rn
    from(
        select group_id,player_id,score1,
            rank() over (partition by group_id order by score1 desc,player_id) rn 
        from(
            select group_id,players.player_id,sum(score) score1 
            from players
            right join(
                select first_player player_id,first_score score from matches #
                union 
                select second_player player_id,second_score score from matches
            ) a
            on a.player_id = players.player_id
            group by group_id,player_id
    				order by group_id
        )b 
    )c
    where rn = 1
    

  • 相关阅读:
    iOS网络开发之AFNetworking
    TCP/IP、Http、Socket的区别
    iOS开发
    iOS 10相关技术
    HTTP协议详解
    HTTPS和HTTP的区别
    CocoaPods
    关于 iOS 10 中 ATS 的问题
    Run Loop详解
    iOS开发项目之MVC与MVVM
  • 原文地址:https://www.cnblogs.com/Tdazheng/p/14981005.html
Copyright © 2011-2022 走看看