随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣614(MySQL)-二级关注者(中等)

题目:

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

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

比方说:

 应该输出:

 解释:

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

注意:

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

解题思路:

建表语句:

1 Create table If Not Exists follow_614 (followee varchar(255), follower varchar(255));
2 Truncate table follow_614;
3 insert into follow_614 (followee, follower) values ('A', 'B'),('B', 'C'),('B', 'D'),('D', 'E');

直白点理解题意就是筛选出在follower列中出现的字母在followee出现的次数。

①首先从表中通过where条件筛选出在followee在follower出现的数据;

 ②以followee为分组和排序,统计出followee和follower出现的次数。

1 select f.followee,count(distinct f.follower) as num
2 from follow_614 f
3 where f.followee in(
4 select follower 
5 from follow_614
6 )
7 group by f.followee
8 order by f.followee

 

小知识:

SQL的执行顺序:

FROM > ON > JOIN >WHERE > GROUP BY > HAVING >SELECT > UNION > ORDER BY > LIMIT

SQL的书写顺序:

SELECT > FROM > WHERE > JOIN > ON > GROUP BY > HAVING > UNION > ORDER BY > LIMIT

posted on   我不想一直当菜鸟  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2022-04-04 python格式化时间报错:UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal byte sequence
2022-04-04 9.盒子模型
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示