美文网首页
Leetcode614.二级关注者(中等)

Leetcode614.二级关注者(中等)

作者: kaka22 | 来源:发表于2020-07-13 00:06 被阅读0次

在 facebook 中,表 follow 会有 2 个字段: followee, follower ,分别表示被关注者和关注者。

请写一个 sql 查询语句,对每一个关注者,查询他的关注者数目。

比方说:

+-------------+------------+
| followee    | follower   |
+-------------+------------+
|     A       |     B      |
|     B       |     C      |
|     B       |     D      |
|     D       |     E      |
+-------------+------------+

应该输出:

+-------------+------------+
| follower    | num        |
+-------------+------------+
|     B       |  2         |
|     D       |  1         |
+-------------+------------+

解释:

B 和 D 都在在 follower 字段中出现,作为被关注者,B 被 C 和 D 关注,D 被 E 关注。A 不在 follower 字段内,所以A不在输出列表中。

注意:
被关注者永远不会被他 / 她自己关注。
将结果按照字典序返回。

产生数据

CREATE TABLE follow(
followee VARCHAR(10),
follower VARCHAR(10));

INSERT INTO follow VALUE('A', 'B'),('B', 'C'),('B', 'D'),('D', 'E');

解答
两表连接 主表的关注者 是附表的被关注者

SELECT *
FROM follow AS F
JOIN follow AS F1
ON F.`follower` = F1.`followee`

对F.follower分组统计F1.follower的数量 这里需要去重

SELECT F.`follower`, COUNT(DISTINCT F1.`follower`) AS num
FROM follow AS F
JOIN follow AS F1
ON F.`follower` = F1.`followee`
GROUP BY F.`follower`

另一种思路就是选择 出现在关注者中的被关注者
得到的就是关注者及他们的关注者

SELECT *
FROM follow AS F
WHERE F.`followee` IN (SELECT F1.`follower`
FROM follow AS F1)

再根据flowee分组 统计flllower的数量即可

SELECT F.`followee`, COUNT(DISTINCT F.`follower`) AS num
FROM follow AS F
WHERE F.`followee` IN (SELECT F1.`follower`
FROM follow AS F1)
GROUP BY F.`followee`

相关文章

  • Leetcode614.二级关注者(中等)

    在 facebook 中,表 follow 会有 2 个字段: followee, follower ,分别表示被...

  • 关注中等生

    曾经几何时觉得中等生是最听话,最不起眼,学生时代我当过优等生也当过中等生。中等生在老师那里几乎很少有露面...

  • 关注中等生

    今天学校通知后天交爱国征文稿件,临近考试,没有海选的时间,我决定指派两名同学来写。 平时作文最好的是恒烨和晨瑞,想...

  • 绘画分析第五十二幅

    画者信息:女,15岁,初三。学习成绩中等偏上。 整体释义: 房屋偏大:对家的关注。整体画面不太大有些内向。 位置偏...

  • 绘画分析第五十七幅

    画者信息:男,18岁,高二。学习成绩中等。 画面特征及释义: 画面较大:强调自我存在感,渴望被关注。 栅栏围成了一...

  • 爱情里的中等生

    上学的时候,班级里受到关注最少的就是所谓的中等生了吧! 在爱情里,命运似乎也不那么关注“中等生”,仰望学霸,看不上...

  • 你的脑洞够大么?

    本来今天说科普中等优秀者渴望得到关注却又得不到关注的心理学的,可是我还没有找到相关社会研究资料,所以今天来讲一个小...

  • 绘画分析第六十幅

    画者信息:男,高一,17岁,学习成绩中等 画面主要特点及释义: 画面较大:强调自我存在感,渴望被关注。 似刀尖的山...

  • 动物趣站

    狼(拉丁名:Canis lupus Linnaeus) 国家二级保护动物,共四十六亚种。体型中等、匀称四肢修长,趾...

  • 币圈熊市罕见亮点,CCC 数币对冲基金今年收益51%

    正值币圈熊市,一级市场严冬,投资者关注点转向二级市场。CCC 数币对冲基金 Voyager ETH 自年初内部孵化...

网友评论

      本文标题:Leetcode614.二级关注者(中等)

      本文链接:https://www.haomeiwen.com/subject/uakocktx.html