2017-08-13 100 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