大数据面试SQL(六):共同使用ip用户检测问题

devtools/2024/10/9 15:23:08/

文章目录

共同使用ip用户检测问题

一、题目

二、分析

三、SQL实战

四、样例数据参考


共同使用ip用户检测问题

一、题目

现有用户登录日志表,记录了每个用户登录的IP地址,请查询共同使用过3个及以上IP的用户对。

样例数据: 

结果数据:

二、分析

  • 题目给出的数据是登录记录,需要使用IP进行关联,找到使用相同IP的记录。
  • 因为要使用ip进行关联,首先保证每个用户同一个IP只有一条记录,否则关联会导致结果数据重复。
  • 自关联,会导致使用相同IP的用户,出现1-2,2-1两条记录、1-1,2-2自己的记录,这些记录需要去重和剔除;
  • 计算共同使用过的IP数量,得出结果。
维度评分
题目难度⭐️⭐️⭐️⭐️
题目清晰度⭐️⭐️⭐️⭐️⭐️
业务常见度⭐️⭐️⭐️⭐️

 

三、SQL实战

1、将所有用户登录记录按照用户ID和登录IP去重。 

查询语句:

sql">select user_id,ip
from t6_login_log
group by user_id, ip;

查询结果: 

 

2、通过IP地址进行自关联,去重,剔除相同用户。 

查询语句:

sql">with tmp as(select user_id,ipfrom t6_login_loggroup by user_id, ip)
select t1.user_id,t2.user_id,t1.ip
from tmp as t1jointmp as t2on t1.ip = t2.ip
where t1.user_id < t2.user_id;

查询结果:

3、根据用户组计算使用共同IP的个数。

查询语句:

sql">with tmp as(select user_id,ipfrom t6_login_loggroup by user_id, ip)
select t1.user_id,t2.user_id,count(t1.ip)
from tmp as t1jointmp as t2on t1.ip = t2.ip
where t1.user_id < t2.user_id
group by t1.user_id,t2.user_id;

查询结果:

4、查询共同使用过3个以上IP的用户对。

查询语句:

sql">with tmp as(select user_id,ipfrom t6_login_loggroup by user_id, ip)
select t1.user_id,t2.user_id
from tmp as t1jointmp as t2on t1.ip = t2.ip
where t1.user_id < t2.user_id
group by t1.user_id,t2.user_id
having count(t1.ip) >= 3

查询结果:

5、合并过滤去重用户,得到最终结果。

查询语句:

sql">with tmp as
(select user_id,ip
from t6_login_log
group by user_id, ip
),
t1 as (
select t1.user_id as user_id_a,t2.user_id as user_id_b
from tmp as t1jointmp as t2on t1.ip = t2.ip
where t1.user_id < t2.user_id
group by t1.user_id,t2.user_id
having count(t1.ip) >= 3
)
select user_id from
(select user_id_a as user_id from t1
union all
select user_id_b as user_id from t1) tt
group by user_id;

查询结果:

 

四、样例数据参考

sql">--建表语句
CREATE TABLE t6_login_log (user_id bigint COMMENT '用户ID',ip string COMMENT '用户登录ip地址',time_stamp string COMMENT '登录时间'
) COMMENT '用户登录记录表';
-- 插入数据
insert into t6_login_log(user_id,ip,time_stamp)
values(1,'223.104.41.101','2024-08-24 16:00:00'),(1,'223.104.41.121','2024-08-24 17:00:00'),(1,'223.104.41.104','2024-08-24 19:00:00'),(1,'223.104.41.122','2024-08-24 21:00:00'),(1,'223.104.41.122','2024-08-24 22:00:00'),(2,'223.104.41.101','2024-08-24 07:00:00'),(2,'223.104.41.103','2024-08-24 19:00:00'),(2,'223.104.41.104','2024-08-24 16:30:00'),(2,'223.104.41.122','2024-08-24 17:05:00'),(3,'223.104.41.103','2024-08-24 18:11:00'),(3,'223.104.41.122','2024-08-24 19:07:00'),(3,'223.104.41.101','2024-08-24 16:02:00'),(4,'223.104.41.126','2024-08-24 13:00:00'),(5,'223.104.41.126','2024-08-24 11:00:00'),(4,'223.104.41.122','2024-08-24 10:00:00');

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

http://www.ppmy.cn/devtools/91384.html

相关文章

Stable Diffusion WebUI 1.10.0来了

大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; 前几天 AUTOMATIC1111 发布了Stable Diffusion WebUI 1.10&#xff0c;我也在第一时间将云环境的镜像升级到了最新版本&#xff0c;有兴趣的同学可以去体验下&#xff0c;目前已经发布到了AutoDL&#xff0c;镜像地…

【数据集】Yolo人体关键点数据集处理

文章目录 1、介绍2、数据集格式3 、COCO人体关键点示意图4、数据集预处理4.1、读取JSON文件4.2、可视化4.3、JSON格式转Yolo格式4.4、划分数据集4.5、验证 5、完整代码6、数据集下载链接 1、介绍 人体关键点检测&#xff08;Human Keypoints Detection&#xff09;又称为人体姿…

使用 Gunicorn 部署 Flask 项目

使用 Gunicorn 部署 Flask 项目 1. 简介 Flask 自带的 web 服务器仅适用于开发环境&#xff0c;无法满足生产环境的性能需求。在使用 app.run(host0.0.0.0, port5000) 启动时&#xff0c;Flask 会发出警告&#xff1a;WARNING: This is a development server. Do not use it …

c++----初识模板

大家好&#xff0c;这篇博客想与大家分享一些我们c中比较好用的知识点。模板。首先咧&#xff0c;我们都知道模板嘛&#xff0c;就是以前人的经验总结出来的知识。方便我们使用。这里的模板也是一样的。当我们学习过后&#xff0c;对于一些在c中的自定义函数&#xff0c;我们在…

sql 中的group by 与 聚合函数

聚合函数 MAX( )函数取指定字段的最大值&#xff1b; MIN( )函数取指定字段的最小值&#xff1b; SUM( ) 函数对指定字段的值进行求和&#xff1b; COUNT( ) 函数计算某个分组内数据的条数&#xff1b; AVG( ) 函数指定字段的值求平均数。 举例&#xff1a; &#xfeff;…

探索人工智能大模型在工业领域的应用与发展

探索人工智能大模型在工业领域的应用与发展 前言测评总结 前言 人工智能大模型在工业领域的应用正逐渐展现出其巨大的潜力。大模型能够在工业知识问答、工程建模、数据分析、文档生成和代码理解等多个场景中发挥重要作用。 例如&#xff0c;在工业知识问答方面&#xff0c;大…

React管理系统整合Cesium避坑指南

花费了一周时间将React 升级到了最新版本18&#xff0c;同时整合Cesium三维模块到系统中&#xff0c;其中遇到了react 版本升级后模块删改&#xff0c;按照原来的引入方式无法使用的问题&#xff0c;以及Cesium 放入子路由一直404等问题 文章目录 一、系统版本依赖二、系统预览…

回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型

回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型 文章目录 前言回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型 一、SAO-XGBoost模型二、实验结果三、核心代码…