在sql中查找具有最大连接数的2个人

时间:2015-03-23 20:57:32

标签: mysql sql

我有1张桌子

USER_ID CONNECTION_ID

示例数据

u_id, c_u_id  
12345, 23456 |
12345, 34567 |
23456, 34567 |
56789, 23456 |
56789, 34567 |

用户可以为他拥有的每个连接拥有多条记录。

如何编写一个sql来查找具有最大相互连接的2个人?

1 个答案:

答案 0 :(得分:3)

您可以使用自联接。假设您的表没有重复项:

select t1.u_id, t2.u_id, count(*)
from table t1 join
     table t2
     on t1.c_u_id = t2.c_u_id and
        t1.u_id < t2.u_id
group by t1.u_id, t2.u_id
order by count(*) desc
limit 1;

如果您可以有重复的行,请将count(*)替换为count(distinct t1.c_u_id)