快手一面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届软开秋招面试经验大赏##校招过来人的经验分享#
全部评论
不太严谨,求互关的用户对,应该是去重的吧,你这每个用户对都出现了两遍,结果数翻倍了
点赞
送花
回复
分享
发布于 05-26 10:07 山东

相关推荐

4月中开始截至到今天,投了10个实习,收到有1个测评和1个邀面。决定放弃实习,但是不能放弃面试机会!----------------------两年制硕,时间很赶,所以事情也都赶在了一起。大概是在今年的 1 月开始,我开始系统的学习硬件设计。我在本科的时候虽然也画过一些 PCB 板,但是感觉那个时候只是会用 AD 这个软件,对于硬件的设计其实一窍不通。但是在当时,自己没有珍惜时间认真学,觉得自己的课题慢慢做,自己慢慢学,暑假肯定也能找个实习。可是在 4 月的时候,突然被导师外派给一个师兄帮忙做实验了,导师让我去那边学习人家的终端使用,但是我在那边就只是在给师兄做实验干苦力,每天都很痛苦。五月回来了,导师找我开会批评我没有在那边“工作”,我说一直给师兄做实验,每天早 7 晚 9,晚上回来洗完澡洗完衣服就 10 点了。结果导师说:时间是挤出来的,你现在帮你师兄做实验,到时你师兄也得帮你做实验。导师说完这句话后我就无语了,我一直以为我导师挺好的呢,结果没想到,她也有这样的一面。更让我难受的事是,我的小导又给我整活了。最近要开题了(6 月初),结果我小导要给加工作量,估摸着要多写论文 10 多页?因为我是两年制硕,所以到现在要给我加工作量,我其实是很痛苦的,因为按照进度来说,我只剩下半年的时间做科研的内容,而这半年的时间,我需要做原本就刚刚好的工作量+找工作+现在小导想让我额外做的内容+给师兄当苦力? 这几天一直在整理自己的方案,想了很多,也听了很多师兄的建议,现在脑子乱乱的,觉得自己或许应该静一静,听一听大脑内心自己的想法。#情感##我的求职思考#
点赞 评论 收藏
转发
2 6 评论
分享
牛客网
牛客企业服务