Oracle 按照每小时分组,求每组数量

简介: Oracle 按照每小时分组,求每组数量

Oracle 按照每小时分组,求每组数量


1. 需求:按照插入时间每小时分为一组,求出每组数量

数据库原始数据类似如图所示:

2. 尝试方法:

本以为可以直接使用 substr () 函数取出表示小时的字段,发现格式竟然变了:

所以想直接简单粗暴的使用 substr() 函数不可行。

3. 解决办法:

先将 inserttime 字段的日期变成 字符形式,将 SQL 语句改为:

SUBSTR(TO_CHAR(INSERTTIME,'yyyy-mm-dd hh24:mi:ss'),12,2)

上述代码可以取出表示小时的字符串部分,之后按照该小时部分做 group by 分组处理,使用 count () 函数即可得出每组数量。

示意图如下:

4. 举一反三

将 SQL 语句中最后的参数 2 改为 4 ,即可按照每隔十分钟分组,改成 5 即可按照每分钟进行分组:

SUBSTR(TO_CHAR(INSERTTIME,'yyyy-mm-dd hh24:mi:ss'),12,4)

 

以上,问题解决。

相关文章
|
SQL Oracle 关系型数据库
Oracle分组取最大值
Oracle分组取最大值
|
SQL Oracle 关系型数据库
java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能
java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能
|
Oracle 关系型数据库 SQL
|
Oracle 关系型数据库
oracle数据分组
一,什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值 二,分组函数类型 Avg ,count,max,min,stddev(标准方差),sum。 函数名称 函数描述 Count 返回找到的记录数 Min 返回...
746 0
|
SQL Oracle 关系型数据库
一段oracle中的“复杂”分组统计sql
要求: 呼叫系统(Call Center)每天会有大量的电话进线数据,领导们要查看每天的进线数汇总,并且要求把 每天从上午8点到上午12点以及下午2点到晚上8点这两个时间段的数据汇总 “视”为当天的数据。
676 0
|
Oracle 关系型数据库
在oracle中使用having关键字来限制你的分组结果
前面我们介绍了,使用oracle的聚合函数和group by关键字来对结果集合进行分组,这时就有了一个新的问题,例如,我们针对聚合函数那一列需要找到满足条件的那些分组结果。我们可以使用where子句吗?不行,我们需要的是使用having关键字。
786 0
|
SQL 移动开发 算法
关于分组后字段拼接的问题 (Oracle)
-----关于分组后字段拼接的问题来自:www.itpub.net  最近在论坛上,经常会看到关于分组后字段拼接的问题,大概是类似下列的情形:SQL> select no,q from test2 /NO Q---------- ------------------------------001 ...
1007 0
|
Oracle 关系型数据库 SQL
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
187 64