我有1张桌子
USER_ID CONNECTION_ID
示例数据
u_id, c_u_id
12345, 23456 |
12345, 34567 |
23456, 34567 |
56789, 23456 |
56789, 34567 |
用户可以为他拥有的每个连接拥有多条记录。
如何编写一个sql来查找具有最大相互连接的2个人?
答案 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)
。