当前位置: 首页 > 面试经验 >

快手一面SQL之相互关注数

优质
小牛编辑
86浏览
2024-05-16

快手一面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');

解法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;

解法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;

#数据人的面试交流地##第一次面试##我的实习求职记录##24届软开秋招面试经验大赏##校招过来人的经验分享#
 类似资料: