LeetCode(数据库)- 查询具有最多共同关注者的所有两两结对组

Posted 程序员牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(数据库)- 查询具有最多共同关注者的所有两两结对组相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:略。

解题思路:略。

AC 代码

-- 解决方案(1)
select a.user1_id,a.user2_id
  from (select a.user_id user1_id,
               b.user_id user2_id,
               rank() over(order by COUNT(1) desc) rn
          from Relations a, Relations b
         where a.user_id < b.user_id
           AND a.follower_id = b.follower_id
         group by a.user_id, b.user_id) A
 WHERE A.rn = 1

-- 解决方案(2)
WITH t AS(SELECT r1.user_id user1_id, r2.user_id user2_id, COUNT(*) cnt
FROM Relations r1 JOIN Relations r2 ON r1.user_id < r2.user_id AND r1.follower_id = r2.follower_id
GROUP BY 1, 2
ORDER BY 3 DESC)

SELECT user1_id, user2_id
FROM t
WHERE (SELECT MAX(cnt) FROM t) = cnt

以上是关于LeetCode(数据库)- 查询具有最多共同关注者的所有两两结对组的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 盛水最多的容器(双指针)

leetcode第11题:盛水最多的容器

LeetCode_11_盛水最多的容器

LeetCode第11题 盛水最多的容器

Redis实现微博好友功能微服务(关注,取关,共同关注)

滑动窗口3:Leetcode 11 盛水最多的容器