代码之家  ›  专栏  ›  技术社区  ›  Griff

如何汇总查询结果中的秒数?

  •  2
  • Griff  · 技术社区  · 15 年前

    我有一个Oracle10g表,其中包含一组日志记录。此表从环境记录设备收集数据,该设备在运行时每15秒创建一次日志记录。

    我想将日志文件条目的读取日期后的所有秒数相加,以确保记录器24小时(84600秒)运行。数据如下:

    ID     READING_DATE 
    286294 8/4/2010 1:03:30 PM 
    286295 8/4/2010 1:03:45 PM 
    286296 8/4/2010 1:04:00 PM 
    286297 8/4/2010 1:04:15 PM 
    286298 8/4/2010 1:04:30 PM 
    286299 8/4/2010 1:04:45 PM 
    286300 8/4/2010 1:05:00 PM 
    

    我不能只查询(结束日期-开始日期),因为设备可能无法连续运行24小时。它可以在90天内运行24小时。

    我要做的是编写一个要由数据库执行的查询,该数据库每隔15秒向最后一个查询添加一次间隔,以查看是否有大于>84600的结果。

    感谢您的任何/所有回复!事先谢谢,

    2 回复  |  直到 12 年前
        1
  •  3
  •   Mark Byers    15 年前

    设备运行的秒数大约为:

    SELECT COUNT(*) * 15
    FROM your_table
    
        2
  •  0
  •   Scott Bailey    15 年前

    假设您在该表中记录了多个设备,并且希望列出所有运行了>1天的设备。

    SELECT device_id
    FROM log_table
    GROUP BY device_id
    HAVING MAX(reading_date) - MIN(reading_date) > 1.0