Mysql-选择值在一列中的位置,该列由另一列值分组
我有一个2列的表,我想写一个查询来获取另一列数据集组中给定值的行位置: 例如,我想通过单个查询获得参赛者“anku_883”在组名“punee”和“ansh”中的位置,即我期望的“punee”位置5和“ansh”位置1 我已经编写了以下查询,如果我指定了一个特定的组名(例如ansh),那么我就可以正确地获得参赛者在该组中的位置:Mysql-选择值在一列中的位置,该列由另一列值分组,mysql,Mysql,我有一个2列的表,我想写一个查询来获取另一列数据集组中给定值的行位置: 例如,我想通过单个查询获得参赛者“anku_883”在组名“punee”和“ansh”中的位置,即我期望的“punee”位置5和“ansh”位置1 我已经编写了以下查询,如果我指定了一个特定的组名(例如ansh),那么我就可以正确地获得参赛者在该组中的位置: SELECT x.group_name , x.position FROM (SELECT t.group_name , @rownum := @rown
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'
SQL表表示无序集,因此如果没有指定排序的字段,就没有固有的排序。您有这样的字段吗?是的,我在该表中有另一列(添加时间),我在Order By中使用该列。请查看我编辑的查询。