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

Hive SQL 练习

1、统计每天首次登录的人数

-- 统计每天首次登录的人数
-- 步骤:先找出第一次登录的时间,再按首次登录时间分组求人数-- 方法1:
select first_login_time, count(user_id) as cnt
from 
(select user_id, date_formate(min(login_ts), 'yyyy-MM-dd') as first_login_timefrom user_login_detailgroup by user_id
) t
group by first_login_time;-- 方法2:
select date_format(t.login_ts, 'yyyy-MM-dd') as first_login_time, count(user_id) as cnt
from
(select user_id, login_ts,lag(login_ts) over(partition by user_id order by login_ts) as flagfrom user_login_detailwhere flag is NULL
) t
group by first_login_time;

2、查询用户注册日期(首次登录日期)、登录总次数、2021年登录总次数

-- 用户注册日期(首次登录日期)、登录总次数、2021年登录总次数
select user_id,date_format(min(login_ts), 'yyyy-MM-dd') as first_login_time,count(1) as login_cnt,count(if(year(login_ts)=2021, 1, null)) as 2021_login_cnt
from user_login_detail
group by user_id;

3、查询每个用户累积访问次数

-- 3、每个用户累积访问次数
select user_id, visit_date, month_visit_cnt,sum(month_visit_cnt) over(partion by user_id order by visit_date) as cum_month_visit_cnt    
from 
(   -- 先求出用户每个月累计访问次数select user_id, date_format(visit_date, 'yyyy-MM') as visit_date,sum(visit_cnt) as month_visit_cntfrom tb_1group by user_id, date_format(visit_date, 'yyyy-MM')
) t;

4、各直播间最大的同时在线人数

-- 各直播间最大的同时在线人数
select room_id, max(cnt) as max_cnt
from 
(select room_id, sum(flag) over(partion by room_id order by dt) as cntfrom (select room_id, user_id, login_time as dt,1 as flagfrom tbunionselect room_id, user_id, logout_time as dt,-1 as flagfrom tb) t1
) t2
group by t2.room_id;

5、查询累计销量排名第二的商品

-- 查询累计销量排名第二的商品
select t2.sku_id
from 
(select t1.sku_id, t1.sum_cnt,dense_rank() over(order by t1.sum_cnt desc) as rkfrom(select sku_id, sum(sku_num) sum_cntfrom order_detailgroup by sku_id) t1
) t2
where t2.rk=2;

6、向用户推荐朋友收藏的商品

-- 向用户推荐朋友收藏的商品
-- 步骤:1、首先,单向好友变双向,得到(用户、朋友);再关联用户收藏表,得到(用户、朋友收藏商品);
-- 2、求出(用户、用户收藏集合)
-- 3、由(用户、朋友收藏商品)和(用户、用户收藏商品集合),找出朋友收藏的且不在用户收藏的商品select t3.user_id, t3.sku_id
from
(select distinct t1.user_id, t2.sku_id  -- 同一个用户的多个朋友都收藏了同一个商品,所以要去重from(select user1_id user_id,user2_id friend_idfrom friendship_infounionselect user2_id,user1_idfrom friendship_info) t1join favor_info t2on t1.friend_id=t2.user_id
) t3
left join
(select user_id,collect_set(sku_id) sku_setfrom favor_infogroup by user_id
) t4
on t3.user_id=t4.user_id
where not array_contains(t4.sku_set, t3.sku_id);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网络版本控制:协同进化的基石
  • 开学季有什么必买的好物?提升学习效率的好物来啦!学生党必看!
  • 从零开始带你玩转 AI 变现公开课
  • 【JVM】垃圾收集器与GC日志(一)
  • Top命令在linux中查看系统“任务管理”单词缩写解释
  • MySQL 模糊匹配邮件正文和主题,怎么写性能好
  • 年度精选热门骨传导耳机分享,让你分分钟避免踩雷的风险
  • 使用vueuse在组件内复用模板
  • Unity实现经验条动态自适应
  • 用Python实现时间序列模型实战——Day 3: 时间序列数据预处理
  • Windows 禁用tls 1.0 1.1
  • C语言的选择结构
  • 网络优化4|网络流问题|路径规划问题|车辆路径问题
  • 8月27日笔记
  • MySQL——子查询(5)带比较运算符的子查询
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Docker入门(二) - Dockerfile
  • JavaScript标准库系列——Math对象和Date对象(二)
  • leetcode46 Permutation 排列组合
  • PAT A1050
  • php中curl和soap方式请求服务超时问题
  • 经典排序算法及其 Java 实现
  • 聊一聊前端的监控
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​业务双活的数据切换思路设计(下)
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (16)Reactor的测试——响应式Spring的道法术器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (六)DockerCompose安装与配置
  • (论文阅读30/100)Convolutional Pose Machines
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (算法)Travel Information Center
  • (一)appium-desktop定位元素原理
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .chm格式文件如何阅读
  • .gitignore文件---让git自动忽略指定文件
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET8使用VS2022打包Docker镜像
  • /etc/fstab 只读无法修改的解决办法
  • @Pointcut 使用
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [20171113]修改表结构删除列相关问题4.txt
  • [2669]2-2 Time类的定义
  • [Algorithm][动态规划][两个数组的DP][正则表达式匹配][交错字符串][两个字符串的最小ASCII删除和][最长重复子数组]详细讲解
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [C puzzle book] types