Mysql - 在一列中选择值的位置,该列按另一列值分组

时间:2015-01-26 17:45:37

标签: mysql

我有2列的表,我想编写一个查询来获取另一列数据集的给定值的行位置:

enter image description here

例如,我想在组名“punee”和“ansh”中获得参赛者“anku_883”的位置,这是我期待“punee”位置5和“ansh”位置1使用单个查询。

我编写了以下查询,如果我指定一个特定的组名(例如ansh),那么我可以正确地获得该组中参赛者的位置:

SELECT x.group_name
, x.position 
FROM (SELECT t.group_name
     , @rownum := @rownum + 1 AS position 
     FROM game t 
     JOIN (SELECT @rownum := 0) r 
     WHERE t.group_name='ansh' 
     ORDER BY t.add_time
) x 
WHERE x.contestant = 'anku_883'

我想扩展此查询,以便我在其名称出现的所有组名中获得特定参赛者的位置。类似的东西:

SELECT x.group_name
, x.position 
FROM (SELECT t.group_name
     , @rownum := @rownum + 1 AS position 
     FROM game t 
     JOIN (SELECT @rownum := 0) r 
     WHERE t.group_name in ('punee','ansh') 
     ORDER BY t.add_time
) x 
WHERE x.contestant = 'anku_883'

0 个答案:

没有答案