gpt4 book ai didi

mysql - 使用 group by 按类别和回合发布返回行内容数据和 Max(score)

转载 作者:行者123 更新时间:2023-11-30 21:42:34 24 4
gpt4 key购买 nike

我想按类次返回用户的个人最佳成绩;但日期拍摄结果不正确。请帮忙 - 太令人沮丧了!

SELECT 
c.Class,
r.Round,
h.shootdate as 'Date Shot',
max(h.Score) AS 'Personal Best'
FROM history h, classes c, rounds r
WHERE c.id = h.classid AND r.id = h.roundid AND h.userid = 1
GROUP BY c.Class, r.Round

最佳答案

您可以在 history 表上使用自连接来为每个用户的每个 classid 和 roundid 选择具有最高分数的行

SELECT 
c.Class,
r.Round,
h.shootdate as 'Date Shot',
h.Score AS 'Personal Best'
FROM history h
JOIN (
SELECT classid, roundid, max(score) score
FROM history
WHERE userid = 1
GROUP BY classid, roundid
) h1 ON h.classid = h1.classid AND h.roundid = h1.roundid AND h.score = h1.score
JOIN classes c ON c.id = h.classid
JOIN rounds r ON r.id = h.roundid
-- WHERE h.userid = 1 // not necessary

在您的查询中,您选择的 shootdate 不存在于分组依据中,这就是为什么您在分数最大的地方没有获得正确的值,还使用显式连接语法来关联您的表

关于mysql - 使用 group by 按类别和回合发布返回行内容数据和 Max(score),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50911718/

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