gpt4 book ai didi

MYSQL 平局处理未返回正确的结果

转载 作者:行者123 更新时间:2023-11-30 01:13:27 25 4
gpt4 key购买 nike

我正在使用 MYSQL,并尝试在 MYSQL 的能力范围内进行关系排名。

我的查询是:

    SELECT petz.s_name,
petz.breed,
a.num,
sum(a.rank) AS rank
FROM wins_conf a
JOIN
(SELECT DISTINCT rank
FROM wins_conf
ORDER BY rank DESC LIMIT 10) b ON a.rank = b.rank
JOIN petz ON a.num=petz.num
GROUP BY petz.num
ORDER BY petz.breed,
rank DESC

返回结果:

                                                                  sum(Rank)
INSANITY'S ACE OF SPADES Collie 1026 58
INSANITY'S SAVE ME Collie 1000 31
STAR GAZER'S BEAUTIFUL LIES Collie 1039 24
BANYON'S ALL IS FORGIVEN Collie 1009 19
FELIXTOWE CHERRY BLOSSOM Collie 1214 18
KE'S PRICELESS FIGUREINE Collie 1004 13
NOVABLUE'S LOVES UNENDING LEGACY Collie 1211 12
STAR GAZER'S WARRIOR OF MY HEART Collie 1059 9
INSANITY'S BE MINE Collie 1028 9
STAR GAZER'S A WILDCAT'S REVENGE Collie 1040 5
KE'S TRICKS OF THE TRADE Collie 1005 5

记录 1059(STAR GAZER'S WARRIOR OF MY HEART)返回 9 作为排名,但根据数据库中正在 sum() 的记录,它应该是 12

                                                       Rank
conf 33 13 1059 Best of Breed 0 0 5 0 2
conf 78 3139 1059 Best of Breed 0 0 4 0 2
conf 82 2518 1059 Best of Breed 0 0 1 0 2
conf 81 13 1059 Best in Specialty0 0 1 0 2
conf 79 13 1059 Best of Breed 0 0 1 0 2

经过一些调查,我发现如果 1 大于或等于 4,它只会看到排名列的 sum() 的最后 3 条记录

关于如何纠正这个问题有什么建议吗?

<小时/>

编辑/更新回复 AgRizzo我刚刚删除了全名和品种以便于阅读,这就是我想要的,按排名排序。我想显示排名,其中有重复项,但只有 10 个(包括它们的重复项)。

     num          rank
1 1026 58
2 1000 31
3 1039 24
4 1009 19
4 1214 19
5 1004 13
6 1211 12
6 1059 12
7 1028 9
8 1005 5
8 1040 5
9 1010 3
10 1276 1
<小时/>

我在这里设置了一些基本数据:http://sqlfiddle.com/#!2/7e2992如上所示,它缺少一些无用的内容,但排名中不需要这些内容。

最佳答案

试试这个

   select petz.s_name, petz.breed, a.num, sum(a.rank) as rank
from wins_conf a
JOIN petz ON a.num=petz.num
GROUP BY petz.num
ORDER BY petz.breed, rank DESC LIMIT 10

关于MYSQL 平局处理未返回正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19279076/

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