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

Hsql每日一题 | day02

前言

就一直向前走吧,沿途的花终将绽放~

题目:主播同时在线人数问题

如下为某直播平台主播开播及关播时间,根据该数据计算出平台最高峰同时在线的主播人数。
id          stt                 edt
1001,2021-06-14 12:12:12,2021-06-14 18:12:12
1003,2021-06-14 13:12:12,2021-06-14 16:12:12
1004,2021-06-14 13:15:12,2021-06-14 20:12:12
1002,2021-06-14 15:12:12,2021-06-14 16:12:12
1005,2021-06-14 15:18:12,2021-06-14 20:12:12
1001,2021-06-14 20:12:12,2021-06-14 23:12:12
1006,2021-06-14 21:12:12,2021-06-14 23:15:12
1007,2021-06-14 22:12:12,2021-06-14 23:10:12

建表:

数据准备:

create table t16(id            int,stt           string,edt           string
)row format delimited fields terminated by '\t';插入数据:
load data local inpath '/opt/data/t16.txt' overwrite into table  t16;

需求实现:

select max(c2)
from (select c1,flag,sum(flag) over(order by c1,id) c2from(select id,stt as c1,1 flag from t16union allselect id,edt as c1,-1 flag from t16)t1)t2;

hsql语句分析:

  1. 内部查询(子查询t1):

    • t16表中选择了两列,并为它们分别赋予了别名c1flag
    • 对于t16表中的每一行,如果它是stt列,则flag为1,并作为c1的值;如果它是edt列,则flag为-1,并作为c1的值。这实际上是通过UNION ALL将两个结果集合并成一个,其中一个结果集包含stt作为正值,另一个结果集包含edt作为负值。
  2. 中间查询(子查询t2):

    • 使用了窗口函数SUM(flag) OVER (ORDER BY c1, id)来计算累积和。这个累积和是根据c1(即原始的sttedt)和id的顺序来计算的。
    • 结果集中的每一行都包含c1flag和累积和c2
  3. 外部查询:

    • 从中间查询t2中选择累积和c2的最大值。

结果输出:

相关文章:

  • 【simple-admin】simple-admin-core 首次服务启动 如何配置mysql数据库表 | 如何docker启动core
  • Linux安装Mysql
  • 【MySQL精通之路】InnoDB(7)-锁和事务模型
  • Docker镜像源自动测试镜像速度,并选择速度最快的镜像
  • vb.net打开CAD指指定路径文件
  • 抽象工厂模式(AbstractFactoryPattern)
  • SQL刷题笔记day2
  • Convolutional Occupancy Networks【ECCV2020】
  • 《主对角线求和》
  • 2024云曦期中考(部分复现)
  • 【图论及其运用 — 电子科技大学】(四)第四章 欧拉图与哈密尔顿图(Euler 图与 Hamilton 图)
  • 电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台
  • 炫酷网页设计:HTML5 + CSS3打造8种心形特效
  • 如何通过IP地址来防范“杀猪盘”?
  • QT5.15.2及以上版本安装
  • #Java异常处理
  • Docker入门(二) - Dockerfile
  • ES6 学习笔记(一)let,const和解构赋值
  • express如何解决request entity too large问题
  • Less 日常用法
  • linux学习笔记
  • magento2项目上线注意事项
  • Python socket服务器端、客户端传送信息
  • tensorflow学习笔记3——MNIST应用篇
  • Vue--数据传输
  • web标准化(下)
  • 程序员该如何有效的找工作?
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 前端路由实现-history
  • 学习JavaScript数据结构与算法 — 树
  • Android开发者必备:推荐一款助力开发的开源APP
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (14)Hive调优——合并小文件
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (Java)【深基9.例1】选举学生会
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (转)h264中avc和flv数据的解析
  • .JPG图片,各种压缩率下的文件尺寸
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .net 怎么循环得到数组里的值_关于js数组
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net(C#)中String.Format如何使用
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .netcore如何运行环境安装到Linux服务器
  • @Bean有哪些属性
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @RequestBody与@ResponseBody的使用
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • @Transactional 竟也能解决分布式事务?
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现