美文网首页
oracle如何将数据按时间段分组

oracle如何将数据按时间段分组

作者: 不吃肉饼只喝汤 | 来源:发表于2017-06-08 16:25 被阅读0次

假如我们有一组与时间关联的数据,我们如何按指定时间段分组对数据进行分组呢
我们有一组全天某路段不同时间检测到路过车辆的速度,我们将一天24小时按15分钟分组,将所有数据分为96组,再对每组求平均速度
表名为veh_speed

| time | speed |
| ------------- |:-------------:| -----:|
| 20160606001600 | 40 |
| 20160606001700 | 30 |
| 20160606001800 | 35 |
| 20160606002100 | 31 |
| ... | ... |

开发环境为PL/SQL
我们这里使用case语句

(case when substr(time,11,2)<15 then to_date(concat(substr(time,1,10),'0000'),'yyyymmddhh24miss') 
when substr(time,11,2)>=15 and substr(time,11,2)<30 then to_date(concat(substr(time,1,10),'1500'),'yyyymmddhh24miss')
when substr(time,11,2)>=30 and substr(time,11,2)<45 then to_date(concat(substr(time,1,10),'3000'),'yyyymmddhh24miss')
else to_date(concat(substr(time,1,10),'4500'),'yyyymmddhh24miss') end) ttime 

time字段下数据格式为文本格式,用to_date将数据转为日期格式,substr用于提取分钟以前的字段,concat连接我们需要分组的字段,when...then...表示分组规则。

完整代码如下

select avg(speed) as avg_speed,(case when substr(time,11,2)<15 then to_date(concat(substr(time,1,10),'0000'),'yyyymmddhh24miss') 
when substr(time,11,2)>=15 and substr(time,11,2)<30 then to_date(concat(substr(time,1,10),'1500'),'yyyymmddhh24miss')
when substr(time,11,2)>=30 and substr(time,11,2)<45 then to_date(concat(substr(time,1,10),'3000'),'yyyymmddhh24miss')
else to_date(concat(substr(time,1,10),'4500'),'yyyymmddhh24miss') end) ttime  
from veh_speed
group by ttime;

输出结果如下

| avg_speed | ttime |
| ------------- |:-------------:| -----:|
| 35 | 2016/0606 00:15:00 |
|31 | 2016/0606 00:20:00 |
| ... | ... |

相关文章

  • oracle如何将数据按时间段分组

    假如我们有一组与时间关联的数据,我们如何按指定时间段分组对数据进行分组呢我们有一组全天某路段不同时间检测到路过车辆...

  • Oracle表空间

    数据库、数据库实例、表空间、用户 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。 数据...

  • 数据分析—利用pandas进行数据分组

    目标: 学会利⽤pandas对数据进⾏分组 知道如何提取分组后的数据 可以按多列进⾏分组 能够对分组后数据进⾏统计...

  • oracle新建表空间

    解锁用户(scott) 如何将dmp文件导入到自己的oracle数据库中

  • 数据存在不同系统,怎么统一做分析?

    Oracle、MSSQL、Excel、MySQL…… 数据分布在不同系统中,相对隔绝,该如何将它们集...

  • Pandas 教程 — 不同类型电影的比较(1)

    对数据进行分组运算是数据分析中很常见的操作,如果数据存储在数据库,如 MySQL、Oracle、Hive 中,那么...

  • 分组数据

    1 介绍 分组返回数据,不是where的那种返回特定数据 2 创建分组(group by) 2.1 分析 按ven...

  • 高级排序算法之希尔排序(缩小增量排序)

    排序原理:。 ①选定一个增长量,以增长量作为数据分组的依据,对数据进行逻辑分组。②多分组的数据按组进行插入排序。③...

  • oracle分组

    SELECT c.full_name,MOD(ROWNUM,8) yu FROM t_company c ORDE...

  • 【R】箱线图

    示例数据请私信 实心 小提琴图 jitter plot 分组 按分组,多种变量 注: 获取数据时 可以替换为

网友评论

      本文标题:oracle如何将数据按时间段分组

      本文链接:https://www.haomeiwen.com/subject/egftqxtx.html