`
lifaming15
  • 浏览: 64772 次
  • 来自: ...
文章分类
社区版块
存档分类

Oracle 按时间段分组统计

 
阅读更多

想要按时间段分组查询,首先要了解level,connect by,oracle时间的加减.
关于level这里不多说,我只写出一个查询语句:
---level 是一个伪例
select level from dual connect by level <=10
---结果:1
2
3
4
5
6
7
8
9
10
关于connect by可以看
http://www.linuxidc.com/Linux/2011-06/37600.htm

Oracle时间的加减看看试一下以下sql语句就会知道:

select sysdate -1 from dual
----结果减一天,也就24小时
select sysdate-(1/2) from dual
-----结果减去半天,也就12小时
select sysdate-(1/24) from dual
-----结果减去1 小时
select sysdate-((1/24)/12) from dual
----结果减去5分钟
select sydate-(level-1) from dual connect by level<=10
---结果是10间隔1天的时间

下面是本次例子:

select dt, count(satisfy_degree) as num from T_DEMO i ,
(select sysdate - (level-1) * 2 dt
from dual connect by level <= 10) d
where i.satisfy_degree='satisfy_1' and
i.insert_time<dt and i.insert_time> d.dt-2
group by d.dt

例子中的sysdate - (level-1) * 2得到的是一个间隔是2天的时间
group by d.dt 也就是两天的时间间隔分组查询

自己实现例子:

create table A_HY_LOCATE1
(
MOBILE_NO VARCHAR2(32),
LOCATE_TYPE NUMBER(4),
AREA_NO VARCHAR2(32),
CREATED_TIME DATE,
AREA_NAME VARCHAR2(512),
);

select (sysdate-13)-(level-1)/4 from dual connect by level<=34 --从第一条时间记录开始(sysdate-13)为表中的最早的日期,“34”出现的分组数(一天按每六个小时分组 就应该为4)

一下是按照每6个小时分组
select mobile_no,area_name,max(created_time ),dt, count(*) as num from a_hy_locate1 i ,
(select (sysdate-13)-(level-1)/4 dt
from dual connect by level <= 34) d
where i.locate_type = 1 and
i.created_time<dt and i.created_time> d.dt-1/4
group by mobile_no,area_name,d.dt

本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-06/37601.htm

分享到:
评论

相关推荐

    Oracle数据库按时间进行分组统计数据的方法

    Oracle数据库提供了一种强大的数据分组和统计功能,这在处理时间序列数据时尤其有用。在本示例中,我们关注的是如何利用SQL查询...在实际工作中,根据具体需求,可以组合使用这些方法,以实现更复杂的时间段分组统计。

    oracle分组函数

    在实际业务场景中,我们经常需要对大量的数据进行统计分析,例如计算某个部门的员工总数、计算某个时间段内的销售额等。这些需求通常需要对数据进行分组后进行统计,这就需要用到分组函数。例如: - **查询所有员工...

    oracle 取某个时间段的数据(每周几的上午几点到几点)

    在Oracle数据库中,查询特定时间段内的数据是一项常见的任务,尤其当需要细化到具体的日期、星期以及一天中的某个时段时。本文将重点解析标题和描述中给出的SQL代码,并讲解如何根据给定条件筛选数据。 首先,让...

    Oracle数据库性能分析

    这些统计信息通常包括执行次数、平均执行时间、等待时间等。通过这些信息,可以确定哪些SQL语句需要优化。 - **SQL Monitor**: SQL Monitor提供了一个详尽的报告,包括执行计划、等待事件等信息,这对于诊断性能...

    张烈-Oracle数据库讲义

    - **分组统计**:使用GROUP BY子句结合聚合函数(如COUNT, SUM等)进行分组统计。 - **连接查询**:包括INNER JOIN、LEFT JOIN、RIGHT JOIN等多种类型的连接方式。 - **子查询**:在一个查询语句中嵌套另一个查询...

    Oracle数据库课堂笔记

    可以使用WHERE子句进行筛选,ORDER BY子句进行排序,以及GROUP BY和HAVING子句进行分组统计。联接(JOIN)操作则允许从多个表中合并数据。 第五讲:复杂查询 复杂的查询涉及子查询、联接和集合运算。子查询可以在...

    ORACLE多条件统计查询的简单方法

    在具体的应用中,例如统计市级律师服务的已结案、办理中和案件总数,`CASE`语句被用来检查区县代码、委托时间以及申请状态代码,以此来区分不同的状态。同时,通过`SUBSTR`函数处理业务字段,获取行政区域和业务模块...

    Oracle数据库课程大作业.pdf

    1. Oracle的逻辑存储结构主要包括表空间(Tablespaces)、数据块(Data Blocks)、区(Extents)和段(Segments)。表空间是数据库中最大的逻辑存储单元,可以包含多个段。段是逻辑存储的单位,由一个或多个区组成,...

    超详细Oracle教程

    接下来,教程会详细介绍Oracle的数据类型,包括常用的数值类型、字符类型和日期时间类型,以及它们在数据库中的应用。 对于数据库架构师和管理员来说,理解Oracle体系结构(DBA)是管理大型数据库系统的基础。在此...

    精通Oracle10编程(从入门到精通).rar

    了解如何使用WHERE子句进行条件筛选,GROUP BY和HAVING子句进行分组统计,以及JOIN操作进行表间连接。 3. **PL/SQL编程**:学习Oracle的内置编程语言PL/SQL,包括变量声明、流程控制结构(如IF-THEN-ELSE, LOOP, ...

    oracle从入门到精通.pdf

    3. **日期类型函数**:如SYSDATE, ADD_MONTHS()等,用于处理日期时间数据。 **1.7 嵌套函数** - **通用函数**:如NVL(), NVL2()等,用于根据条件处理数据。 - **条件表达式**:如DECODE(), CASE WHEN THEN ELSE ...

    sql计算班组func.zip_oracle_sql_某个时间班组

    4. **时间区间处理**: 如果班组的划分不是基于连续的时间段,而是基于固定的时间点,例如班组甲乙丙丁分别对应周一至周四、周五和周末,我们可以用`TO_CHAR`函数转换日期为星期几,然后进行匹配。 ```sql SELECT ...

    超详细Oracle教程.pdf

    - **GROUP BY子句**:结合分组函数使用,按指定列分组并计算汇总值。 #### 七、多表查询 - **JOIN操作**:讲解INNER JOIN、LEFT JOIN、RIGHT JOIN等连接类型及其应用场景。 - **自连接**:介绍如何在一个表中进行...

    Oracle SQL 优化与调优技术详解-随书脚本.zip

    哈希聚合则用于计算分组统计数据。这个脚本可能帮助分析哈希操作的性能瓶颈。 5. **缓冲区列表**:06_06_bufflist.sql 可能是用于查看和分析数据库缓冲区行为的SQL脚本。通过监控缓冲区的使用,我们可以了解数据...

    oracle sql精华.docx

    使用`TRUNC`函数可以将日期字段转换为每个月的第一天,从而实现按自然月的分组统计。具体SQL语句如下: ```sql SELECT SUM(quantity) FROM A GROUP BY TRUNC(created_date, 'MM'); ``` 这里,`TRUNC(created_date,...

    oracle form

    - **示例**:在一个交叉表报表中,可以在行上显示时间维度,在列上显示类别维度,从而分析不同时间段内各类别数据的变化趋势。 **参数化报表**: - **定义**:参数化报表可以根据用户输入的参数动态生成报表。 - **...

    Oracle面试题及答案整理

    - 例如,在分析员工的业绩时,如果需要比较不同时间段内同一个员工的表现,可以采用这种方式。 #### 2. 创建表与数据过滤条件 题目中给出了一段代码,创建了一个名为`empinfo`的表,并给出了几种不同的筛选条件: ...

Global site tag (gtag.js) - Google Analytics