`
yvonna
  • 浏览: 52155 次
  • 性别: Icon_minigender_2
  • 来自: 合肥
社区版块
存档分类
最新评论

sql查询时间段区间统计

SQL 
阅读更多
写好这个sql,竟然发现不知道现在是上午还是下午。看来我真是埋头写了一个多小时没有分散注意力了。呵呵。写在博客记录一下!

需求:
按天统计巡检的基站数量。

建表sql:
CREATE TABLE PLAN_VP_STAT_PATROL_DETAIL(
  TID VARCHAR2(40) NOT NULL, 
  PATROL_VP_ID VARCHAR2(30) NOT NULL,
  PATROL_TIME DATE,//巡检时间
  CONSTRAINT PK_VP_STAT_PDETAIL_ID PRIMARY KEY(TID)
);

每巡检一次就发送一条数据在此表中
表数据:
tid    PATROL_VP_ID   PATROL_TIME
1       1             2009-6-16 12:34:34
2       1             2009-6-17 12:38:34
3       2             2009-6-19 12:38:34
4       3             2009-6-16 12:38:34
5       3             2009-6-18 12:38:34

现在要统计6.15-6.21期间内的每天所巡检的基站数量,某天没有数据也要显示为0
 
select to_date('2009-06-15 00:00:00', 'yyyy-mm-dd hh24:mi:ss') +
          (r - 1)  begin_time,
       to_date('2009-06-15 00:00:00', 'yyyy-mm-dd hh24:mi:ss') + r        end_time,
         count(p.tid) vp_num
        
    from plan_vp_stat_patrol_detail p right join
         (select rownum r from dual connect by level <= 7)
     on p.patrol_time between
          to_date('2009-06-15', 'yyyy-mm-dd hh24:mi:ss') +
        (r - 1)  and
        to_date('2009-06-15', 'yyyy-mm-dd hh24:mi:ss') + r
  group by r
  order by begin_time

说明:
(select rownum n from dual connect by level <= 7) 7,代表显示7天数据,从6.15号开始的7天。可以用trunc(to_date('2009-06-21','yyyy-mm-dd')) - trunc(to_date('2009-06-15','yyyy-mm-dd'))+1 函数去取得。


执行结果:

begin_time    end_time   vp_num
2009-6-15     2009-6-16   0
2009-6-16     2009-6-17   2
2009-6-17     2009-6-18   1
2009-6-18     2009-6-19   1
2009-6-19     2009-6-20   1
2009-6-20     2009-6-21   0
2009-6-21     2009-6-22   0

分享到:
评论

相关推荐

    MySql 按时间段查询数据方法(实例说明)

    本文将详细说明如何使用MySQL进行按时间段查询数据的方法,包括操作示例和说明。 首先,我们必须了解MySQL中处理时间数据的函数。例如,`curdate()` 函数用于获取当前日期,而 `month()` 函数可以提取日期或时间...

    sqlserver/mysql按天、按小时、按分钟统计连续时间段数据【推荐】

    在SQL Server和MySQL数据库中,按天、按小时或按分钟统计连续时间段数据是一项常见的需求,这有助于分析数据峰值和趋势。以下是如何实现这一目标的详细步骤和知识点: 1. **master..spt_values表**: - `master.....

    sql中的按日期统计问题

    数据分析时常需要分析特定时间段的数据,比如周、季度或年度。这可以通过计算日期之间的差值来实现,或者利用SQL的内置功能,如MySQL的`INTERVAL`关键字: ```sql SELECT * FROM table WHERE date_column ...

    sqlserver 计算当月所有自然周的区间。

    这种方法能够确保每个“周”都完整地包含了七天的时间段。 ### 2. SQL Server中的日期函数 在SQL Server中,处理日期和时间数据时会用到一些内置的函数,例如: - `DATEADD()`:用于增加或减少日期值。 - `...

    SQL查询时间大全

    根据提供的文件信息,本文将对其中涉及的SQL时间查询与转换相关的知识点进行详细的解析与总结。这些知识点主要包括:日期格式转换、日期间隔计算、日期偏移量应用等几个方面。 ### 1. 日期格式转换 #### 转换当前...

    详解mysql 获取某个时间段每一天、每一个小时的统计数据

    在MySQL数据库中,获取某个时间段内每一天或每一个小时的统计数据是一项常见的数据分析任务,这通常涉及到时间戳或日期字段的处理。以下将详细讲解如何通过SQL语句实现这一目标。 首先,我们关注标题和描述中提到的...

    销售数据库 查询实验素材-sql查询命令 例子

    例如,可以查询某个时间段内的销售额、特定产品的销售量或最畅销的产品等。 4. **数据更新**:`UPDATE`命令用于修改已存在的记录。在销售数据库中,可能会更新客户的联系方式、订单状态或调整产品价格。 5. **数据...

    group by 按某一时间段分组统计并查询(推荐)

    其中timestamp 是数据库时间字段。 括号中的1 是间隔时间,1分钟。 如果是1小时,就写60,如果是30s 就写0.5 结果 那被分组的id 如何解决呢?分完组我们还需要 哪些记录被分到哪些组了。 我们可以这么做。 SELECT ...

    JAVA实现按时间段查询数据操作

    * 在JAVA中,时间段查询可以通过使用java.util.Date类和java.sql.Timestamp类来实现。 * 使用java.util.Date类可以获取当前时间,并将其格式化为指定的日期格式。 三、JAVA实现按时间段查询数据操作 * 在上述代码...

    经典SQL脚本大全

    │ │ 2.5.1 查询指定日期段内过生日的人员.sql │ │ 2.5.2 生成日期列表的函数.sql │ │ 2.5.3 工作日处理函数(标准节假日).sql │ │ 2.5.3 工作日处理函数(自定义节假日).sql │ │ 2.5.4 计算工作时间的函数....

    oracle统计时间段内每一天的数据(推荐)

    在Oracle数据库中,有时我们需要统计特定时间段内的每一天的数据。这里我们将深入探讨如何使用SQL语句来实现这个目标,以及涉及到的一些关键函数和概念。 首先,我们来看如何生成一系列的随机数,这在模拟数据或者...

    mysql 获取规定时间段内的统计数据

    在MySQL数据库中,获取规定时间段内的统计数据是一项常见的需求,尤其对于数据分析和业务监控至关重要。这里我们将探讨如何使用MySQL的时间函数来实现这样的统计。 首先,我们要理解`DATE_FORMAT()`函数的作用。这...

    Sqlserver2000经典脚本

    │ 2.4.1 日期格式化处理.sql │ │ 2.4.2 日期推算处理.sql │ │ 2.4.3 特殊日期加减函数.sql │ │ 2.5.1 查询指定日期段内过生日的人员.sql │ │ 2.5.2 生成日期列表的函数.sql │ │ ...

    SQL对数据进行按月统计或对数据进行按星期统计的实例代码

    在SQL中,对数据进行按月或按星期的统计是常见的数据分析任务,尤其在财务、销售或任何与时间序列相关的领域。这个实例代码主要展示了如何在MySQL环境中处理此类问题。首先,我们来理解这段代码的主要组成部分。 1....

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

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

    通过点击日历控件来动态获取查询统计信息

    服务器根据接收到的日期范围执行SQL查询,统计对应时间段的数据,然后返回给前端。前端再将这些数据展示在图表或表格中,形成动态的查询统计结果。 例如,在`khfxxt`这个项目中,可能有一个统计用户活跃度的需求。...

    sql中时间以5分钟半个小时任意间隔分组的实现方法

    本文主要探讨如何在SQL中以5分钟或半个小时为间隔对时间数据进行分组,以达到统计特定时间段内数据的目的。我们将介绍两种不同的实现方法,一种是通过自定义函数,另一种则是利用时间戳和算术运算。 方法1:自定义...

    SQL经典面试题及答案

    假设有一个表格,记录了某段时间内的比赛结果(胜利或失败),如何编写SQL语句来统计每一天的胜利和失败次数? **示例数据:** - 日期:2005-05-09,胜利:2次,失败:2次 - 日期:2005-05-10,胜利:1次,失败:2...

    脚本生成AWR报告步骤

    为了确保AWR报告的准确性,通常需要选择一个数据库负载较高的时间段来生成快照。例如,可以选择上午10:00-11:00或下午15:00-16:00等高峰时段。此外,还需要为全天24小时生成一次快照,以覆盖非高峰时段的数据。 ```...

    SQL跨库复制数据、case分类用法、分时段查询

    这里`CASE`表达式用于对温度进行分类,并在`GROUP BY`和`ORDER BY`子句中使用,以便按温度区间统计和排序记录。 3. 分时段数据查询: 分时段查询通常涉及在特定时间范围内聚合数据。例如: - 每天数据总和: ``...

Global site tag (gtag.js) - Google Analytics