当前位置: 首页 > wzjs >正文

名作之壁吧网站建设seo算法培训

名作之壁吧网站建设,seo算法培训,2017地震新疆阳网站建设,网站开发方案及报价单注:参考文章: SQL 之共同使用ip用户检测问题【自关联问题】-HQL面试题48【拼多多面试题】_hive sql 自关联-CSDN博客文章浏览阅读810次。0 问题描述create table log( uid char(10), ip char(15), time timestamp);insert into log valuesinsert into l…

注:参考文章:

SQL 之共同使用ip用户检测问题【自关联问题】-HQL面试题48【拼多多面试题】_hive sql 自关联-CSDN博客文章浏览阅读810次。0 问题描述create table log( uid char(10), ip char(15), time timestamp);insert into log valuesinsert into log values('a', '124', '2019-08-07 12:0:0'),('a', '124', '2019-08-07 13:0:0'),('b', '124', '2019-08-08 12:0:0'),('c', '124', '2019-0._hive sql 自关联https://blog.csdn.net/godlovedaniel/article/details/119858751

0 问题描述

1 数据准备

create table log
(uid string,ip string,login_time string
)row format delimited
fields terminated by '\t';insert into log values
('a', '124', '2019-08-07 12:00:00'),
('a', '124', '2019-08-07 13:00:00'),
('b', '124', '2019-08-08 12:00:00'),
('c', '124', '2019-08-09 12:00:00'),
('a', '174', '2019-08-10 12:00:00'),
('b', '174', '2019-08-11 12:00:00'),
('a', '194', '2019-08-12 12:00:00'),
('b', '194', '2019-08-13 13:00:00'),
('c', '174', '2019-08-14 12:00:00'),
('c', '194', '2019-08-15 12:00:00');

2 数据分析

   共同使用问题,一般此类题型都需要一对多,该问题的解决核心逻辑是自关联

 完整代码如下:

selectt3.uid_1, t3.uid_2
from (selectt1.ip,t1.uid as uid_1,t2.uid as uid_2from (select uid, ip from log group by uid, ip) t1join(select uid, ip from log group by uid, ip) t2where t1.ip = t2.ipand t1.uid < t2.uid) t3
group by t3.uid_1, t3.uid_2
having count(ip) >= 3;

代码分析:

step1: 获取自关联的结果集

selectt1.ip,t1.uid as uid_1,t2.uid as uid_2
from (select uid, ip from log group by uid, ip) t1join(select uid, ip from log group by uid, ip) t2on t1.ip = t2.ip;

step2: 由于数据会两两出现,所以a,b和 b,a实际上是一样的,需要过滤掉这部分重复数据,只需要选出 t1.uid < t2.uid,即过滤掉a,b这组数据。hive中不支持不等连接,故使用where语句

selectt1.ip,t1.uid as uid_1,t2.uid as uid_2
from (select uid, ip from log group by uid, ip) t1join (select uid, ip from log group by uid, ip) t2where t1.ip = t2.ip and t1.uid < t2.uid;

step3:按照组合键分组,并过滤出符合条件的用户

selectt3.uid_1, t3.uid_2
from (selectt1.ip,t1.uid as uid_1,t2.uid as uid_2from (select uid, ip from log group by uid, ip) t1join(select uid, ip from log group by uid, ip) t2where t1.ip = t2.ipand t1.uid < t2.uid) t3
group by t3.uid_1, t3.uid_2
having count(ip) >= 3;

3 小结

    本案例题型属于:“共同xx”,例如:共同好友、互相认识、共同使用等。遇到这类关键字的时候,往往可以采用自关联的方式解决。(笛卡尔积:一对多;去重取一)

http://www.dtcms.com/wzjs/185974.html

相关文章:

  • 小工厂怎么做网站搜索seo怎么优化
  • 百草味网站建设策划书网络营销理论
  • 网站建设需要懂什么郑州网站推广排名公司
  • 网站流量站怎么做的企业邮箱格式
  • 大连做网站哪家便宜长沙网络推广外包
  • 公司网站建设全长沙市最新疫情
  • 炫酷个人网站php源码全是广告的网站
  • 网站代做发布需求广告推广平台网站有哪些
  • 网站制作接单中国搜索引擎市场份额
  • html上传wordpress无忧seo
  • 自己做手机版网站制作seo研究协会网
  • 西安网站建设制作专业公司在线葡京在线葡京
  • 网站后台管理水印怎么做百度北京分公司官网
  • 郑州外贸网站建设公司吸引人的软文标题
  • 自己的网站怎么做西安网站制作价格
  • wordpress4.9安装出错优化排名
  • 郑州做网站的专业公司宁波网站seo诊断工具
  • 深圳网站建设电话济宁网站建设
  • 山西防疫最新信息长沙百度seo代理
  • 做网站找客源关键字
  • 青浦专业做网站免费网站推广软件
  • 南京网站建设包括哪些公司营销策划方案
  • 什么网站可以做音乐伴奏不付费免费网站
  • 国外网站视觉设计趋势国家市场监督管理总局官网
  • 域名空间都有了怎么做网站网推什么平台好用
  • 喜欢做网站网站百度百科
  • 临沂网站关键词网址导航大全
  • 做网站汉口花生壳免费域名注册
  • 上海工商局企业信息查询网站优化包括
  • 桐庐县住房和城乡建设局网站关键词自动生成器