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

SQL 之共同使用ip用户检测问题【自关联问题】-HQL面试题48【拼多多面试题】

目录

0 问题描述

1 数据分析

2 小结


0 问题描述

1 数据分析

(1)数据准备

create table log
(uid string,ip string,time string
)row format delimited
fields terminated by '\t';insert 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-08-09 12:0:0'),
('a', '174', '2019-08-10 12:0:0'),
('b', '174', '2019-08-11 12:0:0'),
('a', '194', '2019-08-12 12:0:0'),
('b', '194', '2019-08-13 13:0:0'),
('c', '174', '2019-08-14 12:0:0'),
('c', '194', '2019-08-15 12:0:0')
;hive> select * from log;
OK
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
Time taken: 0.053 seconds, Fetched: 10 row(s)

(2)共同使用问题,一般涉及到该字眼的都是需要一对多,此类问题解决的核心逻辑是自关联。

1)获取自关联后的结果集

select t1.uid as uid_1, t1.ip, t2.uid as uid_2from (select uid, ip from log group by uid, ip) t1 join(select uid, ip from log group by uid, ip) t2 ont1.ip = t2.ip
--------------------------------------------------------------------------------
OK
a	124	a
a	124	c
a	124	b
a	174	a
a	174	c
a	174	b
a	194	a
a	194	c
a	194	b
b	124	a
b	124	c
b	124	b
b	174	a
b	174	c
b	174	b
b	194	a
b	194	c
b	194	b
c	124	a
c	124	c
c	124	b
c	174	a
c	174	c
c	174	b
c	194	a
c	194	c
c	194	b
Time taken: 8.808 seconds, Fetched: 27 row(s)

2)由于数据会两两出现,如a,b和b,a实际上是一样的,过滤掉这部分重复数据,只需要选出t1.uid < t2.uid即可,也就是a,b的数据.hive中不支持不等连接,所以选where语句

select t1.uid as uid_1, t1.ip, t2.uid as uid_2from (select uid, ip from log group by uid, ip) t1 join(select uid, ip from log group by uid, ip) t2 wheret1.ip = t2.ip and t1.uid < t2.uid
	
OK
a	124	c
a	124	b
a	174	c
a	174	b
a	194	c
a	194	b
b	124	c
b	174	c
b	194	c
Time taken: 16.193 seconds, Fetched: 9 row(s)

 3)按照组合键分组,并过滤出符合条件的用户。最终SQL如下:

select m.uid_1,m.uid_2 
from(select t1.uid as uid_1, t1.ip, t2.uid as uid_2from (select uid, ip from log group by uid, ip) t1 join(select uid, ip from log group by uid, ip) t2 wheret1.ip = t2.ip and t1.uid < t2.uid
) m
group by m.uid_1,m.uid_2 
having count(ip) >= 3
--------------------------------------------------------------------------------
OK
a	b
a	c
b	c
Time taken: 11.073 seconds, Fetched: 3 row(s)

2 小结

本题的特征为"共同使用",诸如此类两两相遇,共同,相互认识等关键字时候,往往采用自关联解决,这类问题的共同特征往往包含一对多,需要组合出各种情况。相关类问题可参考如下链接:https://blog.csdn.net/godlovedaniel/article/details/119155757

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35183.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

线程的安全性 - 并发基础篇

简介 当多个线程访问某个类时&#xff0c;这个类始终都能表现出正确的行为&#xff0c;那么就说这个类是线程安全的。 目录 这次分三步走&#xff1a;关于相关知识点&#xff0c;放在文末的脑图里了&#xff0c;大家想看结论的&#xff0c;可直接下拉观看哦。 1.创建一个线…...

栈?队列?Java ArrayDeque常用首尾操作方法整理

对于用Java刷leetcode的同学一定很眼熟ArrayDeque这个数据结构&#xff0c;因为它既可以作为队列也可以作为栈&#xff0c;解题时使用频率很高。补充一嘴&#xff0c;Stack也能作为栈来用&#xff0c;但是作为存在设计缺陷的Vector类的子类&#xff0c;已经不推荐使用了。 Arr…...

开发程序流程

JavaWeb程序--> 将一个请求路径( 网络地址) 变成一条sql语句&#xff0c;发送给数据库进行查询&#xff1b; 会将获取的数据&#xff0c;通过页面的方式&#xff0c;展示给用户进行操作&#xff1b; Javaweb程序如何将一个路径变成一条sql语句&#xff1f;...

从入门到放弃:Markdown中的LaTeX使用教程

LaTeX CSDN不支持显示的语法我已用 标注显示 基本语法 展现形式 在正文中的LaTeX公式用$...$定义行内公式&#xff0c;$$...$$单独居中显示 希腊字母 显示命令显示命令α\alphaβ\betaγ\gammaδ\deltaε\epsilonζ\zetaη\etaθ\thetaι\iotaκ\kappaλ\lambdaμ\muν\…...

----- ElasticSearch -----

1.什么是RestFul 2.什么是全文检索 3.什么是Elastic Search 开源 Apache Lucen 工具包 java api特别多 solr 全文检索服务器 底层封装了lucene ElasticSearch 开源搜索引擎 java 4.ES中基本概念 1&#xff09;接近实时(NRT Near Real Time 2&#xff09;索引(index) 3&am…...

39.【Axure 10 】交元件(元件组)交互事件

鼠标相关交互事件 【高】单击时 元件(元件组)的是鼠标单击事件&#xff0c;可以实现鼠标单击的触发的交互事件。 【中】双击事件 元件(元件组)的是鼠标双击事件&#xff0c;作为触发条件。同时也是双击页面任何地方可触发。 【中】鼠标右击事件 元件(元件组)的鼠标右击是…...

PO / PO和 ERP的配置

一、前言 PO / PI 是SAP公司的一个中间件产品&#xff0c;用来辅助SAP系统和外围系统&#xff0c;( 当然外围系统也可以使用PO)。 PO可以完成一些数据内容转换,群发(一份数据发给多个异构系统),分发(数据区分特征发送给特定的系统)等功能. 二、ERP端 ERP和 PO的连接&#x…...

array_search() 在数组中搜索给定的值,如果成功则返回相应的键名

实例 在数组中搜索键值 "red"&#xff0c;并返回它的键名&#xff1a; <?php $aarray("a">"red","b">"green","c">"blue"); echo array_search("red",$a); ?>输出 a 如果…...

不断提升自己创造溢价的能力,附带学习经验

开头 互联网时代的到来&#xff0c;让我们获取知识变得更加简单&#xff0c;理论上讲只要你想学&#xff0c;便会有不尽的知识等你&#xff0c;只要方法得当&#xff0c;够努力&#xff0c;任何人都可以都有可能成为大牛。 自己在努力的基础上&#xff0c;还学习了一些高效的…...

从入门到精通!一个三非渣本的Android校招秋招之路,终局之战

前言: 本文收集整理了各大厂常见面试题N道&#xff0c;你想要的这里都有内容涵盖&#xff1a;Java 相关、Android 基础、Android Framework、三方源码、算法与数据结构、等技术栈&#xff0c;希望大家都能找到适合自己的公司&#xff0c;开开心心的撸代码。 实现方案 直接依…...

潇洒郎:Python建立自己的包与发布自己的包供他人使用

1、建立自己的包&#xff1a; 2、发布包&#xff1a; 3、安装包&#xff1a; 4、 安装包...

燕山大学数据结构知识点总结

数据结构知识点概括 第一章 概 论 数据就是指能够被计算机识别、存储和加工处理的信息的载体。 数据元素是数据的基本单位&#xff0c;可以由若干个数据项组成。数据项是具有独立含义的最小标识单位。 数据结构的定义&#xff1a; 逻辑结构&#xff1a;从逻辑结构上描述数据&a…...

【计算机网络】前端优化总结

文章目录一、采用css雪碧图技术二、把css或者js文件进行合并或者压缩三、图片懒加载技术四、设置视频音频标签为none五、传输格式使用json六、采用cdn加速七、采用事件委托&#xff08;时间代理&#xff09;八、减少闭包使用九、尽量使用异步编程十、使用websocket十一、建立心…...

HTTP的反向代理(详细版)

#官方文档&#xff1a;https://nginx.org/en/docs/http/ngx_http_proxy_module.html #proxy_pass 后直接跟URL url是远处主机或者本机&#xff0c;都可以 proxy_pass http://10.0.0.18:8080;#8080后面无uri,即无 / 符号,需要将location后面 url 附加到proxy_pass指定的url后面…...

23 种设计模式详解

设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结&#xff0c;其中最出名的当属 Gang of Four (GoF) 的分类了&#xff0c;他们将设计模式分类为 23 种经典的模式&#xff0c;根据用途我们又可以分为三大类&#xff0c;分别为创建型模式、结构型模式和行为型模式。…...

分享:关于 JVM 内存的 N 个问题和定位工具

JVM的内存区域是怎么划分的? JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢? 首先是程序计数器(Program Counter Re…...

[C#] 代码混淆和加壳

目的 对比不同的主流保护工具&#xff0c;针对 dnSpy 反编译出的效果。 非混淆代码&#xff1a; using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms;namespace test_winform {// Token: 0x02000002 RID: 2public class Form1 :…...

双亲委派模型

从Java 虚拟机的角度来讲&#xff0c;只存在两种不同的类加载器&#xff1a;一种是启动类加载器&#xff08;BootstrapClassLoader&#xff09;&#xff0c;这个类加载器使用C语言实现&#xff0c;是虚拟机自身的一部分&#xff1b;另一种就是所有其他的类加载器&#xff0c;这…...

OpenLayers源码解析8 ol/source/TileWMS.js

ol/source/TileWMS.js父类 ol/source/TileImage-TileImage 主要功能 WMS服务提供的底图图层源。 参数&#xff1a;TileWMS({}) 参数类型说明paramsObject.<string, *>至少需要LAYER参数。STYLE默认是’VERSION默认是‘1.3.0’WIDTH&#xff0c;HEIGHT&#xff0c;BB…...

代码混淆之class-winter

郑重声明 class-winter是本人在学习完class-final(v1.1.9)后&#xff0c;仿照class-final进行编写的&#xff0c;整体思路与class-final一致&#xff0c;代码部分(约20%~30%)复用了class-final中的代码。可将class-winter看作是class-fianl的一个分支。 功能与特性 支持war加…...

JSP的Cookie与Session

一、Cookie与Session区别 CookieSession内置对象否是保存位置客户端服务器安全性较不安全较安全保存内容格式StringObject 有效范围 单个浏览器所属 写在JSP中&#xff0c;将会所有浏览器共享 同一浏览器不同页面共享 二、基本使用 1.Cookie 存储在本地&#xff0c;由浏览器…...

spring-cloud-kubernetes-feign实战

关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目&#xff0c;用于将Spring Cloud和Spring Boot应用运行在kubernetes环境&#xff0c;并且提供了通用的接口来调用kubernetes服务&#xff0c;主要提供了应用程序使用k8s本身功能&#xff…...

Nacos心跳时间配置及服务快速上下线

Nacos心跳时间配置及服务快速上下线 Nacos默认心跳时间是30秒&#xff0c;不太满足正式环境需要&#xff0c;需要调整心跳时间更短&#xff0c;让线上服务上下线能快速感知. 1.修改微服务的nacos的心跳配置时间 preserved.heart.beat.interval: 1000 #该实例在客户端上报心跳…...

Python编程进阶 关于变量引用这点事

文章目录一、变量的引用1、 引用的概念2、变量引用的示例3、函数的参数和返回值的传递二、可变和不可变类型1、分类2、不可变类型3、可变类型4、哈希 hash三、局部变量和全局变量1、 局部变量&#xff08;1&#xff09;局部变量的作用&#xff08;2&#xff09;局部变量的生命周…...

Python已编辑好的文件问什么文件?

Python已经编译好的文件为后缀 .py文件...

04_set容器_查找和统计

#include<iostream> #include<string> #include<set> using namespace std;//查找 void test01() {set<int>s1;s1.insert(10);s1.insert(30);s1.insert(20);s1.insert(40);set<int>:: iterator pos s1.find(30);if (pos ! s1.end()){cout <&…...

js常见问题总结-DOM节点增删改查

DOM节点的增删改查 文章目录DOM节点的增删改查1.查找节点2.增加节点2.1 创建节点createElement()&#xff1a;创建一个dom节点2.2 父节点插入子节点2.3 同级插入节点3.修改节点3.1 替换节点3.2 clone节点4.删除节点4.1删除节点5.常见操作实现问题综合案例1.查找节点 getElemen…...

高瓴张磊:从学渣到投资大佬,也曾多次犯错

当年差点考不上初中的他&#xff0c;如今管理着超过5000亿元的资金。 来 源 | 财经新知&#xff08;ID&#xff1a;caijingxinzhi&#xff09; 作 者 | 端木清树 编 辑 | 伊页 1972年&#xff0c;河南省驻马店市的一对夫妻诞下一个男孩&#xff0c;并给他取了一个在当年绝对烂…...

UDP和TCP的特点和区别

1、UDP 和 TCP 的特点与区别 用户数据报协议 UDP&#xff08;User Datagram Protocol&#xff09; 是无连接的&#xff0c;尽最大可能交付&#xff0c;没有拥塞控制&#xff0c;面向报文&#xff08;对于应用程序传下来的报文不合并也不拆分&#xff0c;只是添加 UDP 首部&…...

Centos7启动Eclipse Ditto项目

Centos7启动Eclipse Ditto项目1.安装Oracle VM VirtualBox虚拟机&#xff0c;并安装centos7详细安装记录2.安装Docker3.Eclipse Ditto1.安装Oracle VM VirtualBox虚拟机&#xff0c;并安装centos7详细安装记录 详见win10安装oracle vm virtualbox&#xff0c;并安装centos7详细…...

WEB前端网页设计 HTML CSS 网页设计参数 - 【边框圆角】

border-radius&#xff1a;20px/30px 表示圆角的水平半径的长度为20px&#xff0c;垂直半径的长度为30px border-radius&#xff1a;20px 25px/30px 35px 表示左上角 水平和垂直半径为20px和30px&#xff0c;右下角 水平和垂直半径为25px和35px border-radius&#xff1…...

设计新人到设计新人=菜鸟到菜鸟?NO!

摘要&#xff1a; 在云栖社区和云翼计划联合主办的首届互联网新兵进阶在线峰会上&#xff0c;来自阿里云UED部门的交互设计师小民带来了《设计新人到设计新人》的分享。在分享中&#xff0c;他详细阐述了新是一种持续热爱而非功利&#xff1b;新是一种渐变生长而非突变&#xf…...

最新的适合0基础的Java 学习路线,(附视频教程)不仅仅是Javaweb还有大数据哦

老读者都知道&#xff0c;鸟哥是一个半路出家的程序员&#xff0c;资质平平&#xff0c;学历垃圾&#xff0c;当年靠淘宝15元一份的教程自学&#xff0c;入行至今。在自学编程方面多少还有自己的心得和经验。今天我就结合自己的自学经验为像我一样的菜鸟们量身制作一份Java大方…...

回顾2017系列篇(四):永不过时的设计资源

​如果你是一个留心者&#xff0c;你会发现近几年的设计潮流和趋势随着科技的革新在不断的更替和进步。网络上的设计资源&#xff0c;教学视频也愈加的丰富和多样&#xff0c;为众多设计行业的后来者提供了巨大的便利。设计们也乐于分享自己的设计经验和技巧为初入行的菜鸟们提…...

AngularJS 学习教程

AngularJS学习教程 简介 AngularJS 是Google的一个 JavaScript 框架&#xff0c;旨在简化前端应用程序的开发。 AngularJS 是比较新的技术&#xff0c;版本 1.0 是在 2012 年发布的。是一款优秀的前端JS框架&#xff0c;已经被用于Google的多款产品当中。 AngularJS 是以一…...

2022年最新最全uniapp入门学习,零基础入门uniapp到实战项目,unicloud数据后台快速打造uniapp小程序项目

今天开始带着大家一起零基础学习uniapp&#xff0c;在下面的课程中我们就简称uniapp为uni吧。我这里从零基础开始教大家&#xff0c;后面可以带大家简单的做一个实战项目。所以不用担心自己没有基础&#xff0c;跟着石头哥认真学习就行了的。 一&#xff0c;认识uniapp 1-1&am…...

WPF入门教程

1&#xff1a;什么是XAML&#xff1f;XAML&#xff0c;英文全称Extensible Application Markup Language&#xff0c;即“可扩展应用程序标记语言”。这个东西就是微软开发出来抄袭&#xff08;HTMLCSSJavaScript框架的&#xff09;&#xff0c;当然了&#xff0c;web前端框架也…...

app后端开发系列文章文件夹

一点废话 每个程序猿心中&#xff0c;都有一个大牛梦。我们在晨曦之光中敲击着代码&#xff0c;在寒冬覆雪中思考着0与1。夏练三伏 冬练三九这说的就是我们这群【江湖】中人。在这里我们门派林立&#xff0c;C语言派历史悠久&#xff0c;在程序界就是嵩山少林。他们自视甚高。经…...

设计师都在用的素材网站,真的纯免费,还能商用

下载免费素材可以看看这几个网站&#xff0c;但不完全能商用&#xff0c;对于素材需求量不大的人群来说是完全够用的&#xff0c;对你有帮助记得收藏起来&#xff01; 1、菜鸟图库 菜鸟图库-免费设计素材下载 需要素材网站的朋友&#xff0c;这个网站就有很多素材了&#xff…...

菜鸟教程中的面试题总结

前端开发面试题分类 编程技术本文收集总结了一些前端面试题&#xff0c;初学者阅后也要用心钻研其中的原理&#xff0c;重要知识需要系统学习、透彻学习&#xff0c;形成自己的知识链。万不可投机取巧&#xff0c;临时抱佛脚只求面试侥幸混过关是错误的&#xff01;也是不可能的…...

安卓app开发菜鸟教程!Android开发者出路在哪?移动架构师成长路线

近日一好友去阿里面试&#xff0c;面试失败了&#xff0c;分享了一个他最不擅长的算法面试题。题目是这样的。 题目&#xff1a;给定一个二叉搜索树(BST)&#xff0c;找到树中第 K 小的节点。 出题人&#xff1a;阿里巴巴出题专家&#xff1a;文景&#xff0f;阿里云 CDN 资深…...

HTML5期末大作业:仿商城网站设计—— 绿色特产商城购物Html+Css+javascript的网页制作...

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…...

Docker涉及的Linux命名空间、CGroups

概述 Linux的NameSpace介绍 很多编程语言都包含了命名空间的概念&#xff0c;我们可以认为命名空间是一种封装&#xff0c;封装本身实现了代码的隔离。在操作系统中命名空间提供的是系统资源的隔离&#xff0c;其中系统资源包括了&#xff1a;进程、网络、文件系统…实际上li…...

计算机应用能力考试和软考哪个有用,软考中级哪个最容易过 哪个含金量最高...

对于没有相关知识基础的考生来说&#xff0c;软考中级的系统集成项目管理工程师是比较容易过的。它的考试内容设计项目管理内容较多&#xff0c;没有那么多的专业知识&#xff0c;含金量也还可以。软考中级里每个科目都有它的适用范围和发展方向&#xff0c;含金量都是差不多的…...

python报考软考哪个比较好_软考中级考哪个比较好,比较容易过,而且含金量高?

展开全部软考中级的系来统集成自项目管理工程师&#xff0c;2113这个科目比5261较好过一些&#xff0c;考试内4102容&#xff0c;比较多是背诵的。1653系统集成项目管理工程师一年考2次&#xff0c;有培训&#xff0c;其他科目考的人太少了&#xff0c;一年只考一次。既然大家都…...

史上最全的2022年最新版软件测试面试题集锦(含答案+案例分析)【二】,再战金九银十

哈哈哈哈&#xff0c;我又回来了&#xff0c;想了想最后还是给大家带来面试题系列&#xff0c;这不金九银十&#xff0c;又到了一年一度的黄金跳槽季&#xff0c;想必也许有不少软件测试工程师开始摩拳擦掌&#xff0c;蠢蠢欲动了。而网络上的面试题大部分已经过时甚至是错误成…...

史上最全的2022年最新版软件测试面试题集锦(含答案+案例分析),再战金九银十

哈哈哈哈&#xff0c;我又回来了&#xff0c;想了想最后还是给大家带来面试题系列&#xff0c;这不金九银十&#xff0c;又到了一年一度的黄金跳槽季&#xff0c;想必也许有不少软件测试工程师开始摩拳擦掌&#xff0c;蠢蠢欲动了。而网络上的面试题大部分已经过时甚至是错误成…...

软件测试的未来十年

作为伴随着软件的出现而同时出现的岗位&#xff0c;有很长一段时间处于一个比较尴尬的位置。在最初软件开发规模较小的时候&#xff0c;测试被定义为“调试”&#xff0c;目的是纠正软件中已经知道的故障。所以一般由开发人员来对软件反复使用&#xff0c;试图在频繁操作中找到…...

软件测评师(3)_21-30题

21 17年题&#xff0c;这题不多说。不会也能做对&#xff01;。最近搜软考题资料&#xff0c;发现一是搜不到&#xff0c;二是网上答案有错的&#xff01;&#xff01;&#xff01;哎&#xff01;&#xff01;&#xff01;智商哪去了&#xff1f;&#xff1f;&#xff1f…...

ISTQB,QAI,软件评测师软件测试认证特点对比

随着越来越多的公司对软件质量的重视和对软件专业人才的需求&#xff0c;取得软件测试技能认证证书将有助于职业生涯的提升&#xff0c;也是进入国际软件公司从事软件测试工作的敲门砖。越来越多招聘公司都把拥有软件测试认证证书的候选人作为优先录取的对象。拥有测试认证证书…...