快手一面SQL之相互关注数

来源VIP学员反馈的快手面试题【2024/05/15】

推荐阅读文章列表

我的大数据开发学习之路

2024最新大数据开发面试笔记V6.0

大数据开发面经汇总【持续更新】

SQL题目

  • 有一张用户关注表dwd_online_user_follow_dd, 包含用户id(user_id)和关注者id(follower_id)
  • 求相互关注的用户对

答案解析

模拟数据

insert into dwd_online_user_follow_dd values
('a', 'b'),('a', 'c'),('a', 'd'),('b', 'a'),('c', 'a'),('c', 'd');

alt

解法1

select
  t1.user_id,
  t1.follower_id
from dwd_online_user_follow_dd t1
left join dwd_online_user_follow_dd t2
on t1.user_id = t2.follower_id and t1.follower_id = t2.user_id
where t2.user_id is not null;

alt

解法2

select user_f 
from (
  select concat(follower_id,'-',user_id) as user_f
  from dwd_online_user_follow_dd
  union all 
  select concat(user_id,'-',follower_id) as user_f 
  from dwd_online_user_follow_dd
) t 
group by user_f having count(*)>1;

alt

#数据人的面试交流地##第一次面试##我的实习求职记录##24届软开秋招面试经验大赏##校招过来人的经验分享#
大厂高频面试SQL题 文章被收录于专栏

收录字节、阿里、蚂蚁、美团、京东、百度、小红书、拼多多等大厂面试SQL题

全部评论
不太严谨,求互关的用户对,应该是去重的吧,你这每个用户对都出现了两遍,结果数翻倍了
1 回复 分享
发布于 2024-05-26 10:07 山东

相关推荐

3.21 一面自我介绍有一个新的业务,你会怎么做?(数仓建模方式)数仓分层有什么好处介绍一下Spark的join方式(broadcast join, shuffle hash join,sort-merge join)shuffle hash join 和 sort-merge join Spark常用的join是哪个?介绍一下MapReduce的执行过程Hive SQL优化星型模型、雪花模型的区别及应用场景介绍项目,项目分层是如何实现的项目的ods层数据是如何得到的,dws层是如何设计的sql : 1、求在线店铺的月累积销售金额 2、求相邻在线店铺的月累积销售金额的差额sum() ove...
OceanRivers:感觉现在的企业是真抽象,找实习生要求要有实习经历(我要是有实习经历还要来找实习吗),这和校招招应届生的要求有啥区别,按这逻辑以后是不是毕业找工作直接要求一年以上工作经验,也不知道是现在行业卷到这地步了还是企业单纯不想花更多资源培养新人,就想着招有工作经验的牛马,入职直接酷酷工作,然后给他发实习生水平的薪资当廉价劳动力
查看18道真题和解析
点赞 评论 收藏
分享
评论
6
12
分享

创作者周榜

更多
牛客网
牛客企业服务