MySQL:将列数限制为列中的5个唯一值

时间:2015-10-31 07:10:13

标签: php mysql sql unique limit

我正在尝试根据游戏中的杀戮数量创建一个排行榜,其中它显示排名前5位的玩家(具有相同杀戮次数的人在同一级别中)。

我如何获得所有记录,直到排名第5位(所有记录,直到列中最多5个唯一值(杀死))。

我希望这是有道理的。

查询还需要考虑地图。例如:WHERE Name, Kills user1 - 30 user2 - 27 user3 - 54 user4 - 34 user5 - 34 user6 - 27 user7 - 22 user8 - 22 user9 - 31 user10 - 21 user11 - 27 =' map_name'

例如:

表:

1. user3 - 54
2. user4 - 34
   user5 - 34
3. user9 - 31
4. user1 - 30
5. user2 - 27
   user6 - 27
   user11 - 27

需要的结果(排名前5位的所有球员/记录):

{{1}}

5 个答案:

答案 0 :(得分:2)

尝试这样的查询: -

sudo netstat -lnp | grep <PID>

答案 1 :(得分:1)

您可以使用变量:

@rank

Kills变量计算每行的排名位置,因为行按降序 resolve : { loadSummerNote:function($ocLazyLoad){ return $ocLazyLoad.load({ name:"summernote", files: ['/bower_components/summernote/dist/summernote.css','/bower_components/angular-summernote/dist/angular-summernote.min.js','/bower_components/summernote/dist/summernote.min.js'] }) }, loadUploadFile:function($ocLazyLoad,loadSummerNote){ return $ocLazyLoad.load({ name: 'ngFileUpload', files: ['/bower_components/ng-file-upload/ng-file-upload-shim.min.js','/bower_components/ng-file-upload/ng-file-upload.min.js'] }) }, currentDomain : function (Domain, $stateParams,loadUploadFile,User){ return Domain.getDomain(); } }, controller : "domain" 顺序处理。

此查询的一个很好的功能是您还可以获得输出中每行的排名位置(如@Juan Carlos所述)。

Demo here

答案 2 :(得分:0)

'[a-z]+', x.lower()

答案 3 :(得分:0)

尝试:

 SELECT *
 FROM YourTable
 WHERE Kills IN (SELECT DISTINCT Kills 
                 FROM YourTable 
                 ORDER BY Kills DESC 
                 LIMIT 5)
ORDER BY Kills DESC 

答案 4 :(得分:0)

SELECT s.Name, s.Kills FROM scores as s 
INNER JOIN (SELECT DISTINCT Kills From scores ORDER BY Kills DESC LIMIT 5) as s1 
ON s.Kills = s1.Kills  
ORDER BY s.Kills DESC