我正在與MYSQL合作,並試圖在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基色'S WARRIOR)返回9軍銜,但它應該是基於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,它將只能看到最後3條記錄的總和(),如果1大於或等於4
有關如何解決此問題的任何建議?
編輯在回答AgRizzo /UPDATE我剛剛刪除的全名和品種更容易閱讀,這是我想要什麼,排名明智的。我想顯示排名,重複但只有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 它缺少一些絨毛內容由上述可見,但不需要排名內的內容。
這是什麼回報'(從wins_conf爲了通過排名選擇不同等級desc limit 10)'?在那個列表中是1嗎? – AgRizzo
好吧,我明白你在說什麼......並且沒有它沒有返回,這是有道理的。 如果我把我的極限20,那裏的東西是正確的...... 我怎樣才能處理返回的關係? – patchpony
你能說明你的查詢應該返回上述問題描述嗎?例如,「我想要一份名列前十名的名字,按降序排列」。從我所知道的情況來看,查詢列表名稱以及他們的排名總和,僅用於我們前10名的排名。「然後,理想情況下,您可以將示例數據放在sqlfiddle.com中,以便每個人都可以嘗試編寫一個查詢可以快速測試和批評 – AgRizzo