SQL查询连续两个时间段,以Hadoop为例

1、原理:

要实现连续两个时间段的数据查询,网上有很多,我也转载了别人写得比较好的文章。但是最简便的方法是用最原始的方法,将相同数据查询两遍,关联后将两个时间段的数据放在一行。

select a.*,b.列1,b.列2,b.列3
(select
time,id,列1,列2,列3
from 表
)a,
(select
time,id,列1,列2,列3
from 表
)b
where a.time = b.time+1(1个时间段)
and a.id=b.id

2、SQL实例(以Hadoop为例)

select * from(select start_time as time,province,city,cgi,userlabel,vendor,nettype as 小区制式,RRC_CONNMAX  RRC最大连接数,round(UL_PRB_UTILRADIO,4) as 上行PRB利用率,round(DL_PRB_UTILRADIO,4) as 下行PRB利用率,round(eu0103,4) as 无线接通率,round(EU0223,4) as 无线掉线率,round(ERAB_NBRMEANESTAB_QCI1,4) as VoLTE语音话务量,round(EU0113,4) as "无线接通率(QCI=1)",round(EU0204,4) as "E-RAB掉线率(QCI=1)(小区级)",concat(is_gaofuhe,is_dijietong,is_gaodianxian,is_volte)  差小区类型from(select T1.*,case when  (T1.nettype ='TDD' and ((T1.UL_PRB_UTILRADIO>0.5 or T1.DL_PRB_UTILRADIO>0.5) and T1.RRC_CONNMAX>300) ) then '高负荷' when (t1.nettype ='FDD' and ((t1.UL_PRB_UTILRADIO>0.7 or t1.DL_PRB_UTILRADIO>0.7) and t1.RRC_CONNMAX>400) ) then '高负荷' when (t1.nettype ='3D-MIMO' and ((t1.UL_PRB_UTILRADIO>0.8 or t1.DL_PRB_UTILRADIO>0.8) and t1.RRC_CONNMAX>500 )) then '高负荷' else ''  end as is_gaofuhe,case when  ((t1.eu0103>0 and t1.eu0103<0.98) and t1.RRC_CONNMAX>100) and ( (t2.eu0103>0 and t2.eu0103<0.98) and t2.RRC_CONNMAX>100) then  '低接通' else '' end as  is_dijietong,case when ((t1.eu0223>0.02 and t1.eu0223<1) and t1.RRC_CONNMAX>100) and ((t2.eu0223>0.02 and t2.eu0223<1) and t2.RRC_CONNMAX>100 ) then  '高掉线' else '' end as  is_gaodianxian,case when ((t1.eu0113<0.95  or  t1.eu0204>0.05) and t1.ERAB_NBRMEANESTAB_QCI1>1) and  ((t2.eu0113<0.95  or  t2.eu0204>0.05) and t2.ERAB_NBRMEANESTAB_QCI1>1)  then  'volte' else '' end as  is_volte
from (select b.start_time,a.province,a.city,a.cgi2 as cgi,b.user_label userlabel,a.vendor,case when  a.is4G3DMIMO ='是'  then '3D-MIMO'  else  nettype end as nettype,b.RRC_CONNMAX,decode(b.RRU_PuschPrbTot,0,0,b.RRU_PuschPrbAssn/b.RRU_PuschPrbTot) as UL_PRB_UTILRADIO,decode(b.RRU_PdschPrbTot,0,0,b.RRU_PdschPrbAssn/b.RRU_PdschPrbTot) as DL_PRB_UTILRADIO,decode(ERAB_NBRATTESTAB*RRC_ATTCONNESTAB,null,1,0,1,ERAB_NBRSUCCESTAB/ERAB_NBRATTESTAB*RRC_SUCCCONNESTAB/RRC_ATTCONNESTAB) as  eu0103,decode((CONTEXT_SUCCINITALSETUP+CONTEXT_NBRLEFT+HO_SUCCEXECINC+RRC_SUCCCONNREESTAB_NONSRCCELL),null,0,0,0,(CONTEXT_ATTRELENB-CONTEXT_ATTRELENB_NORMAL)/(CONTEXT_SUCCINITALSETUP+CONTEXT_NBRLEFT+HO_SUCCEXECINC+RRC_SUCCCONNREESTAB_NONSRCCELL)) as  EU0223,nvl(ERAB_NBRMEANESTAB_QCI1,0) as ERAB_NBRMEANESTAB_QCI1,decode(ERAB_NBRATTESTAB_QCI1*RRC_ATTCONNESTAB,null,1,0,1,ERAB_NBRSUCCESTAB_QCI1/ERAB_NBRATTESTAB_QCI1*RRC_SUCCCONNESTAB/RRC_ATTCONNESTAB) as EU0113,decode((ERAB_NBRLEFT_QCI1+ERAB_NBRSUCCESTAB_QCI1+ERAB_NBRHOINC_QCI1),null,0,0,0,(ERAB_NBRREQRELENB_QCI1-ERAB_NBRREQRELENB_NORMAL_QCI1+ERAB_HOFAIL_QCI1)/(ERAB_NBRLEFT_QCI1+ERAB_NBRSUCCESTAB_QCI1+ERAB_NBRHOINC_QCI1)) as EU0204
from chunjiebaozhang_2024_lte a left join( select b.*,m.cgi,m.user_label from wxwy.f_l_c_eutrancelltdd_q  b left join wxwy.f_l_c_eutrancelltdd_tmp mon(b.eutrancelltdd_uk = m.unique_key)where 1=1and b.partitionday="$[:{day}]" and b.start_time>='$[:{开始刻钟}]'         and b.start_time<='$[:{结束刻钟}]')bon(a.cgi2= b.cgi))T1,(select b.start_time,a.province,a.city,a.cgi2 as cgi,b.user_label userlabel,a.vendor,case when  a.is4G3DMIMO ='是'  then '3D-MIMO'  else  nettype end as nettype,b.RRC_CONNMAX,decode(b.RRU_PuschPrbTot,0,0,b.RRU_PuschPrbAssn/b.RRU_PuschPrbTot) as UL_PRB_UTILRADIO,decode(b.RRU_PdschPrbTot,0,0,b.RRU_PdschPrbAssn/b.RRU_PdschPrbTot) as DL_PRB_UTILRADIO,decode(ERAB_NBRATTESTAB*RRC_ATTCONNESTAB,null,1,0,1,ERAB_NBRSUCCESTAB/ERAB_NBRATTESTAB*RRC_SUCCCONNESTAB/RRC_ATTCONNESTAB) as  eu0103,decode((CONTEXT_SUCCINITALSETUP+CONTEXT_NBRLEFT+HO_SUCCEXECINC+RRC_SUCCCONNREESTAB_NONSRCCELL),null,0,0,0,(CONTEXT_ATTRELENB-CONTEXT_ATTRELENB_NORMAL)/(CONTEXT_SUCCINITALSETUP+CONTEXT_NBRLEFT+HO_SUCCEXECINC+RRC_SUCCCONNREESTAB_NONSRCCELL)) as  EU0223,nvl(ERAB_NBRMEANESTAB_QCI1,0) as ERAB_NBRMEANESTAB_QCI1,decode(ERAB_NBRATTESTAB_QCI1*RRC_ATTCONNESTAB,null,1,0,1,ERAB_NBRSUCCESTAB_QCI1/ERAB_NBRATTESTAB_QCI1*RRC_SUCCCONNESTAB/RRC_ATTCONNESTAB) as EU0113,decode((ERAB_NBRLEFT_QCI1+ERAB_NBRSUCCESTAB_QCI1+ERAB_NBRHOINC_QCI1),null,0,0,0,(ERAB_NBRREQRELENB_QCI1-ERAB_NBRREQRELENB_NORMAL_QCI1+ERAB_HOFAIL_QCI1)/(ERAB_NBRLEFT_QCI1+ERAB_NBRSUCCESTAB_QCI1+ERAB_NBRHOINC_QCI1)) as EU0204
from chunjiebaozhang_2024_lte a left join( select b.*,m.cgi,m.user_label from wxwy.f_l_c_eutrancelltdd_q  b left join wxwy.f_l_c_eutrancelltdd_tmp mon(b.eutrancelltdd_uk = m.unique_key)where 1=1and b.partitionday="$[:{day}]" and b.start_time>=substr(from_unixtime(unix_timestamp(concat(substr('$[:{开始刻钟}]',1,4),'-',substr('$[:{开始刻钟}]',5,2),'-',substr('$[:{开始刻钟}]',7,2),' ',substr('$[:{开始刻钟}]',9,2),':',substr('$[:{开始刻钟}]',11,2),':','00'))-15*60,'yyyyMMddHHmmss'),1)            and b.start_time<='$[:{结束刻钟}]')bon(a.cgi2= b.cgi))T2where T2.start_time =substr(from_unixtime(unix_timestamp(concat(substr(T1.start_time,1,4),'-',substr(T1.start_time,5,2),'-',substr(T1.start_time,7,2),' ',substr(T1.start_time,9,2),':',substr(T1.start_time,11,2),':','00'))-15*60,'yyyyMMddHHmmss'),1)  and T1.cgi = T2.cgi)TT)M where  差小区类型 is not null and 差小区类型 !=''

这是我在实际工作中用到的sql,有点长,作用是判断连续两个刻钟的数据,如果两个刻钟都是差小区,则认为它是差小区。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的List: 理解与实践

在Java编程语言中&#xff0c;List是一种被广泛使用的集合类型&#xff0c;它提供了一种灵活的方式来存储和操作有序的元素序列。List是Java集合框架&#xff08;Java Collections Framework&#xff09;的一部分&#xff0c;是一个接口&#xff0c;提供了一系列标准的方法来对…

LeetCode_4_困难_寻找两个正序数组的中位数

文章目录 1. 题目2. 思路及代码实现&#xff08;Python&#xff09;2.1 二分查找2.2 划分数组 1. 题目 给定两个大小分别为 m m m 和 n n n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为…

UCF101 数据集介绍与下载

一、介绍 UCF101 是一个现实动作视频的动作识别数据集&#xff0c;收集自YouTube&#xff0c;提供了来自101个动作类别的13320个视频。官方&#xff1a;https://www.crcv.ucf.edu/research/data-sets/ucf101/ 数据集名称&#xff1a;UCF-101&#xff08;2012&#xff09; 总视…

06、Kafka ------ 各个功能的作用解释(ISR 同步副本、非同步副本、自动创建主题、修改主题、删除主题)

目录 CMAK 各个功能的作用解释★ ISR副本 (同步副本&#xff09;★ 非同步副本★ 自动创建主题★ 修改主题★ 删除主题 CMAK 各个功能的作用解释 ★ ISR副本 (同步副本&#xff09; 简单来说 &#xff0c;ISR 副本 就是 Kafka 认为与 领导者副本 同步的副本。 ISR&#xff0…

双位置继电器DLS-5/2TH 额定电压:110VDC 触点形式:7开3闭 柜内安装

系列型号&#xff1a; DLS-5/1电磁式双位置继电器; DLS-5/2电磁式双位置继电器; DLS-5/3电磁式双位置继电器; DLS-5/2G电磁式双位置继电器; DLS-5/3 220VDC双位置继电器 一、用途 1.1用途 DLS-5双位置继电器(以下简称产品)用于各种保护与自动控制系统中&#xff0c;作为切换…

JPEG格式详解Baseline、Progressive的区别

文章目录 JPEG的简介压缩质量/压缩比率色彩空间基线和渐进子采样存储选项 基线和渐进基线格式渐进格式&#xff1a; 子采样4:4:4&#xff08;无损&#xff09;4:2:24:2:0 JPEG的简介 JPEG&#xff08;Joint Photographic Experts Group&#xff09;是一种常见的图像压缩格式&a…

SpringBoot 配置文件加载优先级

SpringBoot 配置文件加载优先级 前言SpringBoot 配置文件加载优先级 前言 最近在使用k8s部署项目的时候,发现Dockerfile文件中的命令后面跟的参数,无法覆盖nacos中的参数,今天有时间正好来整理一下Springboot配置的加载顺序 SpringBoot 配置文件加载优先级 整理加载顺序第一个肯…

电子学会C/C++编程等级考试2023年12月(一级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:数的输入和输出 输入一个整数和双精度浮点数,先将浮点数保留2位小数输出,然后输出整数。 时间限制:1000 内存限制:65536 输入 一行两个数,分别为整数N(不超过整型范围),双精度浮点数F,以一个空格分开。 输出 一行两个数,分…

蓝凌EIS智慧协同平台 ShowUserInfo.aspx SQL注入漏洞复现

0x01 产品简介 蓝凌EIS智慧协同平台是一款专为企业提供高效协同办公和团队合作的产品。该平台集成了各种协同工具和功能,旨在提升企业内部沟通、协作和信息共享的效率。 0x02 漏洞概述 由于蓝凌EIS智慧协同平台 ShowUserInfo.aspx接口处未对用户输入的SQL语句进行过滤或验证…

windows配置电脑网络ip地加的方法

在Windows系统中配置电脑网络IP地址的方法如下&#xff1a; ### 通过图形界面设置 1. **步骤一&#xff1a;打开“网络和互联网设置”** - 点击任务栏右下角的网络图标&#xff08;无线或有线网络图标&#xff09;。 - 在弹出的菜单中选择“网络和共享中心”。 或者&a…

Xcode15 升级问题记录

这里写自定义目录标题 新版本Xcode15升级问题1&#xff1a;rsync error: some files could not be transferred (code 23) at ...参考 新版本Xcode15升级 下载地址&#xff1a;https://developer.apple.com/download/all/ 我目前使用的版本是Xcode15.2 我新创建了一个项目&…

植物大战僵尸小游戏抖音快手直播搭建弹幕插件教程

植物大战弹幕插件功能介绍 该插件由梦歌技术部团队支持开发&#xff0c;本插件软件通过监测抖音弹幕信息&#xff0c;获取礼物数据触发脚本插件对应的功能&#xff1b; 功能目前基本上已经完善&#xff0c;后期功能会陆续上线支持更新&#xff0c;全新的脚本监测稳定方便实用…

文心一言API调用,保姆级案例分享

分享一个调用文心一言API的案例。今天自己用程序去过去文心一言模型中获取结果。 文心一言API调用如何收费&#xff1f; 官方给送了20块钱的体验券&#xff01; 后续收费规则如下 如何开通所需要要的 API key 和 Secret key&#xff1f; api调用需要先在千帆平台开通API key 。…

openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读

文章目录 openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读193.1 switchover操作时&#xff0c;主机降备卡住193.1.1 问题现象193.1.2 原因分析193.1.3 处理办法 193.2 磁盘空间达到阈值&#xff0c;数据库只读193.2.1 问题现象193.2.2 原因分…

C语言中的整形提升

整型提升 一、隐式类型转换1.1 整形提升的意义1.2 如何整形提升1.3 练习1.3.1 练习11.3.2 练习2 总结 一、隐式类型转换 C的整型算术运算总是至少以缺省整型类型的精度来进行的。 为了获得这个精度&#xff0c;表达式中的字符和短整型操作数在使用之前被转换为普通整型(int)&a…

数据结构第十二弹---堆的应用

堆的应用 1、堆排序2、TopK问题3、堆的相关习题总结 1、堆排序 要学习堆排序&#xff0c;首先要学习堆的向下调整算法&#xff0c;因为要用堆排序&#xff0c;你首先得建堆&#xff0c;而建堆需要执行多次堆的向下调整算法。 但是&#xff0c;使用向下调整算法需要满足一个前提…

面试算法110:所有路径

题目 一个有向无环图由n个节点&#xff08;标号从0到n-1&#xff0c;n≥2&#xff09;组成&#xff0c;请找出从节点0到节点n-1的所有路径。图用一个数组graph表示&#xff0c;数组的graph[i]包含所有从节点i能直接到达的节点。例如&#xff0c;输入数组graph为[[1&#xff0c…

微信小程序Canvas画布绘制图片、文字、矩形、(椭)圆、直线

获取CanvasRenderingContext2D 对象 .js onReady() {const query = wx.createSelectorQuery()query.select(#myCanvas).fields({ node: true, size: true }).exec((res) => {const canvas = res[0].nodeconst ctx = canvas.getContext(2d)canvas.width = res[0].width * d…

tar命令的常见用法

tar 是一种广泛使用的命令行工具&#xff0c;用于在 Unix 和 Unix-like 系统中创建、维护、提取以及管理 tar 归档文件。以下是 tar 命令的常见用法和选项列表&#xff1a; 基本命令选项 创建归档: -c: 创建一个新的归档文件。例子: tar -cf archive.tar files/ 查看归档内容…

2024--Django平台开发-Web框架和Django基础(二)---Mysql多版本共存(Mac系统)

MySQL多版本共存&#xff08;Mac系统&#xff09; 想要在Mac系统上同时安装【MySQL5.7 】【MySQL8.0】版本&#xff0c;需要进行如下的操作和配置。 想要同时安装两个版本可以采取如下方案&#xff1a; 方案1&#xff1a;【讲解】 MySQL57&#xff0c;用安装包进行安装。 MyS…