Oracle中对数据分组统计
一、实现效果
1.1、原表内容
1.2、实现效果
①实现对报警信息(TYPENAME)内容分组,且对设备编号、报警信息、开始时间排序效果。
②实现对报警信息(TYPENAME)内容分组统计,且计算开始时间(CreationTimeStart)、结束时间(CreationTime)差值(对差值保留2位小数)效果。
③实现对报警信息(TYPENAME)内容分组统计,且获取最小开始时间(CreationTimeStart)、最大结束时间(CreationTime)差值(对差值保留2位小数)效果。
二、实现原理
2.1、实现思路
①使用【Group by】对需要分组的字段分组;
②使用【Count】统计个数,【Sum】求和,【min、max】求最小最大;
③使用【Order by】对需要排序的字段排序;
④基础的sql语句
//分组的基础SQL执行语句
SELECT '字段1','字段2','字段3' FROM '表名称' GROUP BY '需分组的字段1','需分组的字段2','需分组的字段3' HAVING '需要判断的字段条件' ORDER BY '需排序的字段' ASC
2.2、实现效果的SQL语句
①实现对报警信息(TYPENAME)内容分组,且对设备编号、报警信息、开始时间排序SQL.
SELECTDeviceNumber,DeviceName,DeviceType,TypeName,DeviceValue,CreationTimeStart,CreationTime FROMDEVICEALARM WHEREDeviceNumber IN ( 'C1_02_01' ) AND TYPENAME LIKE '%1管%' AND CreationTimeStart BETWEEN TO_DATE( '2021-09-28 08:00:00', 'yyyy-MM-dd hh24:mi:ss' ) AND TO_DATE( '2021-09-28 19:59:59', 'yyyy-MM-dd hh24:mi:ss' ) GROUP BYDeviceNumber,DeviceName,DeviceType,TypeName,DeviceValue,CreationTimeStart,CreationTime ORDER BYDeviceNumber ASC,TYPENAME ASC,CreationTimeStart DESC
②实现对报警信息(TYPENAME)内容分组统计,且计算开始时间(CreationTimeStart)、结束时间(CreationTime)差值(对差值保留2位小数)效果。
SELECTDeviceNumber,DeviceName,DeviceType,TypeName,COUNT( TypeName ) AlarmNumber,TO_CHAR( SUM( AffectMinutes ), 'FM9990.00' ) AffectMinutes1 FROM(SELECT* FROM(SELECTDeviceNumber,DeviceName,DeviceType,TypeName,CreationTimeStart,CreationTime,TO_CHAR( ( ( DA.CreationTime - DA.CreationTimeStart ) * 24 * 60 ), 'FM9990.00' ) AffectMinutes FROMDEVICEALARM DA ) WHEREDeviceNumber IN ( 'C1_02_01' ) AND TYPENAME LIKE '%1管%' AND CreationTimeStart BETWEEN TO_DATE( '2021-09-28 08:00:00', 'yyyy-MM-dd hh24:mi:ss' ) AND TO_DATE( '2021-09-28 19:59:59', 'yyyy-MM-dd hh24:mi:ss' ) ) GROUP BYDeviceNumber,DeviceName,DeviceType,TypeName ORDER BYTypeName ASC
③实现对报警信息(TYPENAME)内容分组统计,且获取最小开始时间(CreationTimeStart)、最大结束时间(CreationTime)差值(对差值保留2位小数)效果。
SELECT* FROM(SELECTDeviceNumber DeviceNumber1,DeviceName DeviceName1,DeviceType DeviceType1,TypeName AlarmInfo1,AlarmNumber AlarmNumber1,TO_CHAR( ( ( PerGroupMaxEndTime - PerGroupMinStartTime ) * 24 ), 'FM9990.00' ) AffectMinutes1 FROM(SELECTDeviceNumber,DeviceName,DeviceType,TypeName,COUNT( TypeName ) AlarmNumber,MIN( CreationTimeStart ) PerGroupMinStartTime,MAX( CreationTime ) PerGroupMaxEndTime FROM(SELECT* FROMDEVICEALARM WHEREDeviceNumber IN ( 'C1_02_01' ) AND TYPENAME LIKE '%1管%' AND CreationTimeStart BETWEEN TO_DATE( '2021-09-28 08:00:00', 'yyyy-MM-dd hh24:mi:ss' ) AND TO_DATE( '2021-09-28 19:59:59', 'yyyy-MM-dd hh24:mi:ss' ) ) GROUP BYDeviceNumber,DeviceName,DeviceType,TypeName ORDER BYDeviceNumber ASC,TypeName ASC ) ) WHEREAffectMinutes1 >0
Oracle中对数据分组统计相关推荐
- oracle复杂分组查询语句,oracle中的“复杂”分组统计sql
要求: 呼叫系统(Call Center)每天会有大量的电话进线数据,领导们要查看每天的进线数汇总,并且要求把 每天从上午8点到上午12点以及下午2点到晚上8点这两个时间段的数据汇总 "视& ...
- mysql按天,小时,半小时,N分钟,分钟进行数据分组统计
mysql按天,小时,半小时,N分钟,分钟进行数据分组统计 mysql不同时间粒度下的分组统计 按天统计 按小时统计 按半小时统计 按N分钟统计 按分钟统计 mysql不同时间粒度下的分组统计 我们在 ...
- mysql中实现分类统计查询的步骤_在MySQL中如何进行分组统计查询
昨天和大家分享了MySQL中,如何进行聚合函数及统计函数查询,若是不清楚的话,可以去看一下我的那个文章.今天继续和大家分享,在MySQL中如何进行分组统计查询,这个在实际应用中,也会经常运用到,比如以 ...
- FME教程:表格数据分组统计总数的三种实现方式
在FME中进行表格数据分组统计总数的三种方式,实现类似SQL中分组统计总数的功能. 一.业务场景 现在有图1所示的一份Excel表格数据,要求统计每个村的户数,如图2所示. 图1 Excel表格数据 ...
- MyBatis在Oracle中插入数据并返回主键的问题解决
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 前言:我早期用过这个方法,但是返回的依旧是影响行数,不是主键. 只是这种写法可以达到我要的效果: 用 ...
- oracle不连续得时间如何分组,Oracle按不同时间分组统计的sql
Oracle按不同时间分组统计的sql以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle按不同时间分组统计的s ...
- oracle中的数据对象
oracle中的数据对象有表.视图.索引.序列等 表的相关操作 1.创建表 方式一: 方式二:create table person( create table person1 id number(1 ...
- oracle删除的数据没有commit,在Oracle中误删除数据后并commit后的数据恢复办法
在Oracle中误删除数据后并commit后的数据恢复办法 背景:表A数据误操作,被delete了,恢复. --1.先备份A表当前数据. --2.查询某 在Oracle中误删除数据后并commit后的 ...
- excel查询oracle数据库,用Excel直接查询Oracle中的数据
一般情况下,我们如果想要把Oracle当中查询的数据保存为Excel文件,一般都是使用的是PL/SQLDeveloper,本文就给大家介绍一下关于用Excel直接查询Oracle中的数据的内容. 事实 ...
最新文章
- 最新技术选型解决方案列表
- 手动配置linux(centos)的IP地址
- 使用poi进行数据的导出Demo
- 安装VS2008新挫折
- 信息收集 ——C段扫描
- .Net Core 之 Ubuntu 14.04 部署过程
- python安装pygame模块_windows下 python 如何安装pygame模块
- python使用proxy
- 项目实战大全,提升经验的最好办法(一)
- 抱团股大跌,亏了谁的钱?
- Activity与Fragment的onActivityResult细节
- 专家显身支招 教你如何选购高品质DDR2内存(例)
- U盘加密软件测试自学,利用联想USB接口加密软件给你的U盘加密、设定访问权限...
- Illustrator快捷键全集
- 嵌入式系统设计师需要掌握什么
- httpclient中 RequestEntity和RequestBody区别
- NTL库在Win上基于MinGW的安装
- android安装程序后缀,【单选题】Android安装包文件简称APK,其后缀名是()
A. .apk B. .exe C. .txt D. .app...
- 《the Great Gatsby》Day 33
- (附源码)计算机毕业设计ssm高校餐厅评价系统
热门文章
- 1 个月吐血准备,我吃透了300道Java大厂面试题,这次绝对稳了!
- 前端下载流文件xlsx表格方法
- dhcp服务器响应慢,开机显示DHCP,速度很慢,为什么
- 怎样才能让百度搜索到自己的csdn博客?
- Android qq健康接入,手机QQ健康中心怎么添加 怎么进入手机QQ健康中心?
- 基于微信图书商城小程序系统设计与实现 开题报告
- 智能优化算法:北方苍鹰优化算法-附代码
- Viewer.js Javascript/jQuery图片查看器
- leetcode刷题记录2:进度64, 2021.10.23
- git clone 项目报错