2017-08-13 89 views
0

排序獲勝者。結果分揀表

您將如何獲得競爭PHP/MYSQL的優勝者。

總價值是決定贏家的因素。 但是在抽籤中獲得最高價值的那個。 比較最好的結果,如果仍然繪製比較第二個值。

數據庫表具有playerid,結果字段。結果

Playerid result 
1  100 
1   80 
1   80 
2  100 
2   80 
2   40 
2   40 
3  160 
3  100 
4  130 
4  130 
5  270 

列表

Player1 100,80,80 
Player2 100,80,40,40 
Player3 160,100 
Player4 130,130 
Player5 270 

WANTED RESULT

Player5 
Player3 
Player4 
Player1 
Player2 
+0

只是排序上導致每個球員 – peakpeak

回答

0

只需使用group byORDER BY SUM(result) DESC, COUNT(*)選擇:

SELECT PlayerId, SUM(result) res FROM resulttbl GROUP BY PlayerId 
ORDER BY res DESC,COUNT(*) 

我添加第二分揀搜索標準因爲我猜測你希望那些入場次數較少的球員(=少一些比賽?)首先列出。

或者你也可以做

select PlayerId from resulttbl GROUP BY PlayerId 
ORDER BY sum(result) DESC, COUNT(*) 

如果你不想列出的結果的總和。

你可以在這裏找到了工作演示:http://rextester.com/GTHMG11363

+0

感謝這並獲得成功。 – Markus

+0

如果我在列逗號分隔的結果仍然可以排序的一切。 playerid和列結果將有逗號分隔的所有值的字符串? http://rextester.com/JORQ75158 – Markus

+0

我想有辦法做到這一點。這將涉及拆分字符串,計算其部分並對其應用一些數學運算,但絕對不是您使用關係數據庫的方式。原來的方法是首選。 – cars10m