求助关于sql的面试题

服务器每天产生30亿的访问日志,
每一行日志包括字段:device_id, country, channel_id,date,ip, ......
其中device_id表示设备,country表示国家,channel_id表示渠道,date表示日期,......
已知device_id去重总数不到10亿,每天缓慢增加,缓慢到可以忽略不计;
已知country长度最长3个大写字母,channel_id取值范围是100-999;
已知device_id为36个字符组成;
现在要分析:
1、不同国家的device_id去重计数是多少,
2、不同渠道的device_id去重计数是多少,
3、不同渠道独有的device_id去重计数是多少,(因为一个设备可能在不同渠道出现,也可能只在某一个渠道出现)
4、渠道100的设备与其他渠道(101~999)的设备重复率是多少,
要求:
1、写出各个要求的伪sql(不限方言)
2、在计算第四点时如果是 10亿的device_id表 left join 10亿的device_id表,速度较慢,如何解决?
(不限方言,最好是spark,不要求能运行,逻辑对即可;可以自定义算子,算子功能描述清楚即可)
全部评论

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务