LeetCode(数据库)- 锦标赛优胜者

简介: LeetCode(数据库)- 锦标赛优胜者

题目链接:点击打开链接

题目大意:略。

解题思路:解决方案(1) 最后只需要再使用一次 FROM 子句和 GROUP BY 取出每个组的第一条数据即可。

AC 代码

--解决方案(1)
SELECTgroup_id, player_idFROM (
SELECTgroup_id, player_id, SUM(score) ASscoreFROM (
--每个用户总的first_scoreSELECTPlayers.group_id, Players.player_id, SUM(Matches.first_score) ASscoreFROMPlayersJOINMatchesONPlayers.player_id=Matches.first_playerGROUPBYPlayers.player_idUNIONALL--每个用户总的second_scoreSELECTPlayers.group_id, Players.player_id, SUM(Matches.second_score) ASscoreFROMPlayersJOINMatchesONPlayers.player_id=Matches.second_playerGROUPBYPlayers.player_id    ) sGROUPBYplayer_idORDERBYscoreDESC, player_id) resultGROUPBYgroup_id--解决方案(2)
WITHt1AS(SELECTplayer, SUM(score) sumnFROM (
SELECTfirst_playerplayer, first_scorescoreFROMMatchesUNIONALLSELECTsecond_player, second_scoreFROMMatches) tGROUPBYplayer),
t2AS(SELECTgroup_id, playerplayer_id, ROW_NUMBER() OVER(PARTITIONBYgroup_idORDERBYsumnDESC, player) rwFROMPlayerspJOINt1ONp.player_id=t1.player)
SELECTgroup_id, player_idFROMt2WHERErw=1
目录
相关文章
|
关系型数据库 MySQL 数据库
LeetCode(数据库)- 体育馆的人流量
LeetCode(数据库)- 体育馆的人流量
128 0
LeetCode(数据库)- 体育馆的人流量
|
数据库
LeetCode(数据库)- 查询球队积分
LeetCode(数据库)- 查询球队积分
165 0
|
数据库
LeetCode(数据库)- 计算特殊奖金
LeetCode(数据库)- 计算特殊奖金
94 0
|
数据库
LeetCode(数据库)- 净现值查询
LeetCode(数据库)- 净现值查询
99 0
|
数据库
LeetCode(数据库)- 排名靠前的旅行者
LeetCode(数据库)- 排名靠前的旅行者
168 0
|
数据库
LeetCode(数据库)- 联赛信息统计
LeetCode(数据库)- 联赛信息统计
107 0
|
数据库
LeetCode(数据库)- 小众书籍
LeetCode(数据库)- 小众书籍
123 0
|
数据库
LeetCode(数据库)- 2016年的投资
LeetCode(数据库)- 2016年的投资
100 0
|
数据库
LeetCode(数据库)- 页面推荐Ⅱ
LeetCode(数据库)- 页面推荐Ⅱ
97 0
|
数据库
LeetCode(数据库)- 市场分析 I
LeetCode(数据库)- 市场分析 I
166 0
下一篇
DataWorks