Hive sql 每天场景题 41

news/2024/12/15 14:47:27/

41、现有各直播间的用户访问记录表(live_events)如下,表中每行数据表达的信息为,一个用户何时进入了一个直播间,又在何时离开了该直播间

户访问记录表(live_events)如下

user_id
(用户id)

live_id
(直播间id)

in_datetime
(进入直播间的时间)

out_datetime
(离开直播间的时间)

100

1

2021-12-1 19:30:00

2021-12-1 19:53:00

100

2

2021-12-1 21:01:00

2021-12-1 22:00:00

101

1

2021-12-1 19:05:00

2021-12-1 20:55:00

现要求统计各直播间最大同时在线人数,期望结果如下:

live_id
<int>
(直播id)

max_user_count
<int>
(最大人数)

1

4

2

3

3

2

代码

with t1 as (
-- 时间  动作(登录+1,登出-1)
select
live_id
,in_datetime as check_time
,1 as action
from live_events
union all
select
live_id
,out_datetime as check_time
,-1 as action
from live_events
)select 
-- 秒级求最大共同人数
live_id
,max(cn) as max_user_count
from (
select 
-- 时间  累加人数 (开窗sum()只要over()中没有partition by 就能实现累加)
live_id
,check_time
,action
,sum(action) over(partition by live_id order by check_time rows between unbounded preceding and current row) as cn
from t1
)a
group by live_id

http://www.ppmy.cn/news/20581.html

相关文章

自动驾驶介绍、应用、前景

自动驾驶介绍、应用、前景1 介绍1.1 定义1.2 作用1.3 发展历程1.4 分类23年初竞争格局1.5 顾虑1.6 前景2 产业链现状2.1 芯片2.2 仿真3 技术路线3.1 是否交互3.1.1 单车智能3.1.2 车路协同3.2 主传感器区分3.2.1 纯视觉3.2.2 混合传感器3.3 前装还是后装3.3.1 前装3.3.2 后装4 …

NLP学习笔记(七) BERT简明介绍

大家好&#xff0c;我是半虹&#xff0c;这篇文章来讲 BERT\text{BERT}BERT (Bidirectional Encoder Representations from Transformers) 原始论文请戳这里 0 概述 从某种程度上来说&#xff0c;深度学习至关重要的一环就是表征学习&#xff0c;也就是学习如何得到数据的向…

垃圾收集器必问系列—CMS

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 应该相信&#xff0c;自己是生活的战胜者。——雨果 文章目录CMS简介运作过程CMS的缺陷处理器资源敏感无法处理“浮动垃圾”内存碎片纵观全书《深入理解JVM虚拟机》第三版&#xff0c;在垃圾回收器这一篇章&a…

Qt扫盲-QTime理论总结

QTime理论总结一、概述二、使用1. 属性获取2. 时间加减3. 字符串与QTime互转一、概述 QTime对象包含一个时钟时间&#xff0c;可以用小时数、分钟数、秒数和毫秒数来表示。它提供了比较时间和通过添加毫秒数来操作时间的函数。 QTime使用24小时时钟格式&#xff1b;它没有AM/…

【CANoe示例分析】EthernetCanGW_Test_CN

1、工程路径 此示例工程来自于Vector官网:EthernetCanGW_Test_CN 感兴趣的可以自行下载! 2、示例目的 如何在CANoe中创建一个网关,实现转发以太网报文到多个CAN网络中。该使用案例是对CAN网络进行压力测试 3、示例内容 本示例通过执行Test Module里的测试用例Bus_load…

java可用的动态脚本引擎和动态代码执行

文章目录1、javascript语法引擎1.1、rhino1.2、nashorn1.3、j2v82、Java语法引擎2.1、Groovyjava的ScriptEngine脚本引擎&#xff0c;支持代码动态执行&#xff0c;代码修改后不需要重启JVM进程&#xff0c;就可以使用解析或编译方式执行&#xff0c;非常方便&#xff0c;在动态…

Python中的os模块

整理文件和目录最最最常用的os模块os模块是Python标准库中整理文件和目录最为常用的模块&#xff0c;该模块提供了非常丰富的方法用来处理文件和目录。os.getcwd()作用&#xff1a;获取当前的工作路径&#xff1b;>>> os.getcwd() D:\\ResearchWay\\Code\\PythonCode\…

1、测试用例通用模板

一、针对大版本需求的测试用例模板 1、测试用例模板说明 1.1、表头说明 项目版本号V1.0--测试用例&#xff08;示例标题&#xff09;(xxxxx有限公司测试组/ONLY FOR INTERNAL USE ONLY)Confidentiality level 密级(xxxxxx测试组/仅供内部使用) Internal 内部公开 修订记录版…