- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Find most "popular" follower for the persons. The more followers someone has, the more "popular" they are.
我需要 SQL 查询来选择最受欢迎的追随者。
我的表 - (关注者)
id | person_id | follower_person_id
1 1 2
2 1 3
3 2 1
4 2 4
5 3 1
6 3 2
7 3 4
8 4 3
Person_id 1 has total 2 follower (person_id 2, person_id 3), person_id 2 has total 2 followers (person_id 1, person_id 4), person_id 3 has total 3 followers (person_id 1, person_id 2, person_id 4)and person_id 4 has total 1 followers (person_id 3).
Therefore, person_id 3 is most popular follower for person_id 1, person_id 1 is most popular follower for person_id 2, person_id 1 (or person_id 2) is most popular follower for person_id 3 and person_id 3 is most popular for person_id 4.
这里是查询...
SELECT t1.person_id, t1.follower_person_id, t2.cnt
FROM followers AS t1
JOIN (
SELECT person_id, COUNT(*) AS cnt
FROM followers
GROUP BY person_id
) AS t2 ON t1.follower_person_id = t2.person_id
WHERE t1.person_id = 1
ORDER BY t2.cnt DESC LIMIT 1
上面的查询输出是
person_id, follower_person_id, cnt
-----------------------------------
1, 3, 3
Here is explanation of above query
this query only work for find popular person for a specific person but I want to find a paired with their most "popular" follower for all person.
SO输出应该是这样的
person_id, follower_person_id, cnt
-----------------------------------
1, 3, 3
2, 1, 2
3, 1, 2
4, 3, 3
现在我有另一个person 表
id | name
1 John
2 Ali
3 Rohn
4 Veronica
现在我想将这个 id 转换为人名。
Final Output shoud like
person_name, follower_person_name, cnt
--------------------------------------
John, Rohn, 3
Ali, John, 2
Rohn, John, 2
Veronica, Rohn, 3
我需要 sql 查询来获取这些数据。
最佳答案
您可以使用以下查询:
SELECT person_name, follower_name, cnt
FROM (
SELECT person_name, follower_name, cnt,
@rn := IF(@pname = person_name, @rn + 1,
IF(@pname := person_name, 1, 1)) AS rn
FROM (
SELECT t3.name AS person_name, t4.name AS follower_name, t2.cnt
FROM followers AS t1
JOIN (
SELECT person_id, COUNT(*) AS cnt
FROM followers
GROUP BY person_id
) AS t2 ON t1.follower_person_id = t2.person_id
JOIN person AS t3 ON t1.person_id = t3.id
JOIN person AS t4 ON t1.follower_person_id = t4.id
) AS x
CROSS JOIN (SELECT @rn := 0, @pname := '') AS vars
ORDER BY person_name, cnt DESC) AS v
wHERE v.rn = 1;
输出:
person_name follower_name cnt
--------------------------------
John Rohn 3
Veronica Rohn 3
Ali John 2
Rohn Ali 2
查询使用变量以获得每组最大的记录。
关于mysql - 返回所有用户的列表,与他们最多的 "popular"关注者配对。某人拥有的追随者越多,他们的 "popular"就越多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43285818/
Find most "popular" follower for a specific person. The more followers someone has, the more "popula
Find most "popular" follower for the persons. The more followers someone has, the more "popular" the
假设有一个标签表,如stackoverflow问题标签: TagID (bigint), QuestionID (bigint), Tag (varchar) 使用LINQ获取25个最常用标签的最有效
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试使用 Twitter 搜索 API 检索几条“流行”推文,但是当我使用“result_type =流行”尝试此操作时,我基本上最终得到一条“流行”推文。无论如何,我是否可以调整代码,以便获得
我有一个输入框,用户可以在提问时输入标签。它们以逗号分隔,如下所示: test1, test2, test3, test4 我的问题表结构是: 为了显示问题的标签,我只使用 explode(",",
我正在使用以下代码来生成某个 release_id 在表中出现了多少次的列表 所以 release_id 可以在我的表中出现多次。 SELECT release_id, COUNT( release_
我需要作业来获取数组中最“流行”的数字(出现频率最高的数字),如果有多个数字具有相同的显示次数,则随机获取一些数字。经过三个多小时的尝试,或者在网上搜索,这就是我得到的: public int get
好的,所以我正在构建一个网站,人们可以在其中发布新闻、评论、问题等。人们还可以对所有这些对象进行评分,最喜欢其中的大部分,分享它们等。该网站是 PHP+MySQL。我用 PHP 编写了一个脚本,它执行
这些是我的表格: 表:人物 id---name 1----John 2----Mike 3----George 表:访问 id---name---visitor 1----Paris--1 2----
我计划创建一个包含 x 千行数据的 mysql 5 (myISAM) 表。每行都会有一个计数字段,并且具有 20 个最高计数值的行将被检索很多,可能与每行更新一比一。通常不会检索不在这 20 行中的
ProductId | BrandId | Views 1 | 1 | 3 2 | 1 | 2 3 |
如何显示某个时期(例如过去一天)的“最受欢迎(文章|帖子|无论什么)”列表? (基本上复制了 Radioactivity Drupal 模块的功能。) 最佳答案 这是我会做的: 如果您还没有,请注册
基于v3 documentation我本以为是这样的: $ curl https://api.github.com/legacy/repos/search/python?language=Python
我想知道如何在我的应用程序的 SQLite 数据库中按受欢迎程度排序项目。 该应用程序连接到我的在线服务器并通过 JSON 自动同步信息。项目通常由用户在手机上保存,并添加到列表中,我想我可以将所有单
在 Google CSE 中,当我尝试获取 Popular Queries 时,我在 FireBug 控制台 中收到此错误: NetworkError: 400 Bad Request - http:
我有 2 个模型 Books 和 Categories 我想知道如何根据其中的书籍数量获得前 10 个类别。 我的模型是这样的 class Book(models.Model): """(Bo
考虑下表,其中包含字段 - id (int) 和 date_created (datetime): id date_created 1 2010-02-25 12:25:32
我正在用 Rails (3) 构建一个博客类型的网站,其中“作者”可以关注其他作者,并且为了找到拥有最多关注者的作者,我写了这个范围: scope :popular, all.sort { |a, b
我只是在做开源NLP工具的对比研究,对openNLP和coreNLP引擎的特性/服务有所了解。最近,我看到 openNLP 论坛没有任何贡献,而 coreNLP 论坛仍然活跃。所以我想了解stanfo
我是一名优秀的程序员,十分优秀!