Mysql 从两列中查找唯一值,然后查找这些值的比率

Mysql 从两列中查找唯一值,然后查找这些值的比率,mysql,Mysql,我有一个包含id、player1和player2列的表。玩家的ID可以在两列中的任意一列中。我需要在player1列和player2列中找到所有的唯一ID。然后我还需要找到每个玩家在每个列中出现的次数。最后,我想按columnplayer1/columnplayer2的比率来排序 例如,表中有以下值 1103101 210311 3 232 103 4223 111 我的问题将返回 球员223:1/0 播放器232:1/0 球员103:2/1 球员101:0/1 球员111:0/2 我知道,对于

我有一个包含id、player1和player2列的表。玩家的ID可以在两列中的任意一列中。我需要在player1列和player2列中找到所有的唯一ID。然后我还需要找到每个玩家在每个列中出现的次数。最后,我想按columnplayer1/columnplayer2的比率来排序

例如,表中有以下值

1103101

210311

3 232 103

4223 111

我的问题将返回

球员223:1/0

播放器232:1/0

球员103:2/1

球员101:0/1

球员111:0/2

我知道,对于独特的ID,我可以这样做

select 
(SELECT group_concat(DISTINCT player1) FROM table) as player1,
(SELECT group_concat(DISTINCT player2) FROM table) as player2
ORDER BY player1 / player2 DESC
我知道为了订单我可以做这样的事情

select 
(SELECT group_concat(DISTINCT player1) FROM table) as player1,
(SELECT group_concat(DISTINCT player2) FROM table) as player2
ORDER BY player1 / player2 DESC
我真的很难弄清楚,一旦我得到了唯一的ID,然后尝试得到输出和排序的比率,该怎么办

select player1,player2, CONCAT('Player',IF( (select count(DT.player1) from table as DT where MT.player1 = DT.player1) > 0, player1,player2),':', (select count(DT.player1) from table as DT where MT.player1 = DT.player1), ' / ', (select count(DT.player2) from table as DT where MT.player2 = DT.player2) )  
from table MT
where player1 != player2
group by palyer1,player2
order by (player1/IF(player2 is not null and player2 != 0,player2,1) desc
我希望它能帮助你