gpt4 book ai didi

mysql - 查询以获取行的标识符和聚合函数值

转载 作者:行者123 更新时间:2023-11-29 03:02:09 24 4
gpt4 key购买 nike

在 MySQL 数据库中有以下两个表:

USER
- ID
- Name

GAME1
- ID
- UserID
- Score
- Rank

这是我需要的 View :

 - User.ID
- User.Name
- Game1.ID as MaxScoreGameID
- Max(Game1.Score) as MaxScore
- Game1.ID as BestRankGameID
- Min(Game1.Rank) as BestRank

我在没有 GameID 的情况下也能正常工作,但我还需要出现 MaxScoreBestRank 的游戏的 ID。

我在网上搜索了一些信息并尝试了 GROUP_CONCATHAVING ......但我无法获得我需要的结果。

编辑

作为查询的结果,我为每个用户排除了一行,其中包含 MaxScoreBestRank 以及达到这些的游戏的 ID。如果用户在多于 1 场比赛中得分相同(最好),我只希望用户行中有其中之一。

最佳答案

您可以使用过滤连接。该示例仅针对分数,但您可以为排名添加第二个过滤连接。

select  u.name
, g1.ID as MaxScoreGameID
, g1.Score as MaxScore
from User u
join (
select UserID
, max(Score) as maxScore
from Game1
group by
UserID
) as MaxScorePerUser
on MaxScorePerUser.UserID = u.ID
join Game1 g1
on u.ID = g1.UserID
and MaxScorePerUser.MaxScore = g1.Score

关于mysql - 查询以获取行的标识符和聚合函数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21724992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com