Oracle按不同时间分组统计的sql
如下表table1:
注意:为了显示更直观,如下查询已皆按相应分组排序
1.按年份分组
2.按月份分组
3.按季度分组
4.按周分组
PS:Oracle按时间段分组统计
想要按时间段分组查询,首先要了解level,connect by,oracle时间的加减.
关于level这里不多说,我只写出一个查询语句:
oracle时间的加减看看试一下以下sql语句就会知道:
下面是本次例子:
d.dt-2
group by d.dt
例子中的sysdate - (level-1) * 2得到的是一个间隔是2天的时间
group by d.dt 也就是两天的时间间隔分组查询
自己实现例子:
select (sysdate-13)-(level-1)/4 from dual connect by level<=34 --从第一条时间记录开始(sysdate-13)为表中的最早的日期,“34”出现的分组数(一天按每六个小时分组 就应该为4)
一下是按照每6个小时分组
d.dt-1/4
group by mobile_no,d.dt
另外一个方法:
trunc(sysdate - 40)
group by trunc(to_number(to_char(created_time,'hh24')) / 6)
--按12小时分组
select trunc(to_number(to_char(created_time,'hh24')) / 6)