按 15 分钟间隔对数据集进行分组

2023-12-22

我正在尝试为我们的内部公司系统建立平均会话量。问题是范围大约向后三个月,我想按 15 分钟间隔对这整组大数据进行分组,因此输出将如下所示:

interval      sess_avg
12:00-12:15   300
12:15-12:30   350
etc..

我的查询是:

    SELECT
        TO_CHAR(sess_start_date,'YYYY-MM-DD HH24:MI:SS') time_start,
        COUNT (sess_id) how_many
                FROM
        t.sessions,
        t.users
            WHERE
        t.users.user_id         =t.sessions.sess_user_id
        AND user_type     !='X'
        AND sess_start_date>=TRUNC(ADD_MONTHS(SYSDATE,-12))
GROUP BY
        TO_CHAR(sess_start_date,'YYYY-MM-DD HH24:MI:SS')

问题是我不知道如何开始。请帮忙。


正如所解释的在之前的回答中 https://stackoverflow.com/q/30920975/266304,您可以使用 SSSSS 格式模型来操作日期值的时间部分。在这里应用该方法,然后您可以按调整后的值进行查询和分组:

SELECT
    TO_CHAR(TRUNC(sess_start_date)
            + FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)/96,
        'YYYY-MM-DD HH24:MI:SS') time_start,
    COUNT (sess_id) how_many
FROM
    t.sessions,
    t.users
WHERE
    t.users.user_id = t.sessions.sess_user_id
    AND user_type !='X'
    AND sess_start_date>=TRUNC(ADD_MONTHS(SYSDATE,-12))
GROUP BY
    TRUNC(sess_start_date) + FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)/96;

如果您想要不参考日期的时间段,您可以这样做:

SELECT
    TO_CHAR(TO_DATE(FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)*900,
      'SSSSS'),'HH24:MI') time_start,
    COUNT (sess_id) how_many
FROM
    t.sessions,
    t.users
WHERE
    t.users.user_id = t.sessions.sess_user_id
    AND user_type !='X'
    AND sess_start_date>=TRUNC(ADD_MONTHS(SYSDATE,-12))
GROUP BY
    TO_DATE(FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)*900, 'SSSSS');

要获得所有天的同一时间段内的平均计数,您可以将它们与内联视图结合起来:

SELECT
    TO_CHAR(period_start, 'HH24:MI') as period_start,
    AVG (how_many) avg_how_many
FROM (
  SELECT
      TO_DATE(FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)*900,
          'SSSSS') period_start,
      TO_CHAR(TRUNC(sess_start_date)
              + FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)/96,
          'YYYY-MM-DD HH24:MI:SS') time_start,
      COUNT (sess_id) how_many
  FROM
      t.sessions,
      t.users
  WHERE
      t.users.user_id = t.sessions.sess_user_id
      AND user_type !='X'
      AND sess_start_date>=TRUNC(ADD_MONTHS(SYSDATE,-12))
  GROUP BY
      TO_DATE(FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)*900, 'SSSSS'),
      TRUNC(sess_start_date) + FLOOR(TO_NUMBER(TO_CHAR(sess_start_date, 'SSSSS'))/900)/96
)
GROUP BY
    period_start
ORDER BY
    period_start;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按 15 分钟间隔对数据集进行分组 的相关文章

  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • CREATE TABLE 和 CREATE ANY TABLE 权限之间的区别

    我不明白这两种特权之间的区别 我找到了这两个解释 但这对我没有帮助 CREATE TABLE gt Enables a user to create a table owned by that user CREATE ANY TABLE g
  • Oracle 数据库 12c 尝试连​​接时出错:网络适配器无法建立连接

    我第一次安装Oracle数据库12c 我正确地遵循了所有步骤并将其安装在 Windows 7 64 位上 但是当我单击 SQL Developer 并尝试创建新连接时 我输入了用户名和密码等信息 最后单击 测试 按钮 我得到了这个错误消息
  • 什么是 Oracle 数据集成器?

    什么是ODI ODI的实际用途是什么 oracle data integrator工具如何帮助编程 sql Developer 工具和 ODI 工具实际上有什么区别 真的厌倦了在某些网站上找到的定义 如果有人能提出 gud 解释 那就太好了
  • 不是 select 中带有 MAX 的单组组函数

    Select sg gameno Max sg Year sg end sg hostcity country olympic name from Summergames s Country co where s country isoco
  • 如何将整行(在 SQL 中,而不是 PL/SQL 中)传递给存储函数?

    我遇到以下 非常简单 问题 我想编写一个 Oracle SQL 查询 大致如下 SELECT count MyFunc MyTable FROM MyTable GROUP BY MyFunc MyTable 在 PL SQL 中 可以使用
  • ora-12528: TNS:Listener: 所有适当的实例都阻止新连接

    当我尝试连接到数据库时收到此错误 ora 12528 TNS Listener 所有适当的实例都阻止新连接 我尝试了以下操作 但没有成功 停止和启动侦听器 关闭和启动数据库 重新启动 oracle 服务 我该如何解决这个问题 您可能会遇到网
  • 将交易数据从时间和状态列标准化为每个状态值的分钟数

    我有一个用户状态变化表 例如 insert time status 1 1 2017 0 00 AVAILABLE 1 1 2017 0 15 BUSY 1 1 2017 0 30 NOT AVAILABLE 1 1 2017 1 30 A
  • SQL Server 与 Oracle DBMS_METADATA.GET_DDL 并行吗?

    我正在寻找命令行或脚本化解决方案来从 SQL Server 2005 中为所有数据库对象提取 DDL 表 存储过程 视图 索引 索引 约束等 GUI 工具不感兴趣 优先选择内置工具 因为它最能与 Oracle 的 DBMS METADATA
  • Oracle 函数中的加密/解密密码

    由于以前设计不佳的结构 我必须使用的当前数据库将用户密码存储为文本 现在 我正在构建一个必须使用这些密码的前端部分 我当然不想发送未加密的密码 我的想法是编写一个 Oracle 函数来加密和解密文本密码 并在存储过程中使用这些函数来返回加密
  • 如何在oracle日志中打印http请求

    我们正在使用以下方式调用外部 URLUTL HTTP方法并设置 HTTP 标头 例如basic authentication keep alive content soap action所以我需要打印我设置为标题的内容 DBMS OUTPU
  • Oracle DB & SQL Developer:“错误报告:执行已完成,但有警告” - 如何*查看*该警告?

    我正在设置一个本地 Oracle 11g 数据库 我们已经运行的另一个数据库的克隆 我正在 SQL Developer 中运行一堆生成的 PL SQL 命令 我得到输出 Error starting at line x in command
  • 每组最大 n 个 SQL 查询的高性能方法

    我正在尝试构建一个基础设施 以便根据需要快速运行回归 从包含我们网络服务器上所有历史活动的数据库中提取 apache 请求 为了通过确保我们仍然回归来自较小客户的请求来提高覆盖范围 我想通过为每个客户检索最多 n 个 为了这个问题 假设 1
  • 无法使用symfony2连接数据库oracle

    我需要的 我需要将oracle数据库与symfony2连接 我已经通过 php m 检查过 oci8 pdo odbc odbc 这是我关注的链接https gist github com johnkary 6481664 https gi
  • 如何在oracle sql查询中提取括号之间的字符串

    我正在尝试从字符串中提取括号之间的值 我怎样才能做到这一点 例如 我有这个字符串 Gupta Abha 01792 我想得到括号之间的结果 即 01792 我正在尝试编写这样的查询 select substr Gupta Abha 0179
  • 如何使用 SQLPLUS 假脱机到 CSV 格式的文件?

    我想将一些查询提取为 CSV 输出格式 不幸的是 我无法使用任何奇特的 SQL 客户端或任何语言来做到这一点 我必须使用SQLPLUS 我该怎么做 您还可以使用以下内容 尽管它确实在字段之间引入了空格 set colsep separate
  • C# 中强制关闭 oracle 连接

    我有一个报告窗口 显示从可能长时间运行的 Oracle 存储过程返回的结果 我的问题是 当用户关闭窗口时 与 Oracle 的连接保持打开状态 并且可能长时间运行的报告不会被取消 关闭打开的连接的唯一方法是 DBA 手动终止它们或用户退出整
  • 在 PL/SQL 块中定义引用其自身集合的记录类型

    如何在 PL SQL 匿名块中定义包含自身集合属性的记录类型 看下面的例子 DECLARE type t item is record name varchar2 64 children t items referencing t item
  • 如何通过ODBC检索Oracle数据库函数的结果?

    我在通过 ODBC 调用 Oracle 存储函数 而不是过程 时遇到问题 我的函数非常简单 它只是连接两个字符串 我可以通过以下方式调用它 rs c execute SELECT add str yogi bubu FROM dual fo
  • 如何查看授予其他用户的架构哪些权限

    考虑这种情况 在数据库中 我有两个用户 A 和 B 及其相应的架构 我想知道 如何获取信息 架构 B 中的用户 A 有哪些权限 考虑这种情况 我们有两个用户及其关联的场景 我们有用户A和用户B 在A中 假设我们有TB1 TB2 在B中 假设

随机推荐

  • python GIL 的多线程示例

    我读过很多关于在编写多线程代码时 python GIL 业务有多么 糟糕 的文章 但我从未见过一个例子 有人可以给我一个基本的例子来说明 GIL 在使用线程时何时会导致问题吗 Thanks 多线程的主要原因之一是程序可以利用多个 CPU 和
  • Selenium webdriver python 无法上传文件 - send_keys 抛出 ElementNotInteractable

    所以我尝试使用 selenium webbrowser send keys 上传文件 但它不起作用 请帮忙 from selenium import webdriver import time driver webdriver Chrome
  • 使用 Python Selenium 保存网页

    我正在使用 Selenium Webdriver for Python 2 7 启动浏览器 browser webdriver Firefox 转到某个网址 browser get http www google com 此时 如何向浏览器
  • 如何在 zsh 中正确安装新的补全?

    整个问题已讨论完毕here https github com DannyBen alf issues 39 and here https github com nvm sh nvm issues 2489 由于参与这些讨论的人都没有 100
  • wxHaskell标签无法显示全文

    我正在 Windows XP 上使用 Hello World 测试 wxHaskell http www haskell org haskellwiki WxHaskell Quick start http www haskell org
  • jQuery、html5、append()/appendTo() 和 IE

    如何复制 创建一个 html5 页面 确保添加了来自 remysharp com 2009 01 07 html5 enabling script 的脚本 以便 IE 能够注意到这些标签 创建硬编码 section section tag
  • Bootstrap 4 个选项卡

    好的 我正在尝试使用 bootstrap 4 制作动态选项卡 如下所示 https codepen io jek pen BoWNRy 不是我写的 无论如何 我在本地粘贴此代码都不起作用 我显示了 3 个选项卡 但我只能在第一个选项卡中看到
  • 有没有办法在运行时修改Linux C程序中函数的代码?

    简单来说 我们有两个类似的函数 void f1 printf d 123 void f2 printf d 124 现在我们在main中调用f1 它会打印123 编译时 反汇编f1可能是这样的 08048424
  • Python 的日、月、年时间戳

    是否可以在 Python 中创建仅包含日期对象中的日 月和年的 UNIX 时间戳 秒数 我本质上是在寻找午夜时的时间戳 小时 分钟和秒为 0 Thanks gt gt gt import time gt gt gt import datet
  • Python for 循环中捕获异常

    我有以下 for 循环 for batch in loader do something with batch 从加载器中提取批处理时 我的循环有时会失败 我想做的是类似于下面的代码片段 但我希望能够继续循环下一个值 而不是跳过其余的值 e
  • LINQ to SQL - 没有可用的添加方法

    我创建了一个 LINQ to SQL 数据上下文 其中包含一个数据表 我试图简单地将一条新记录插入该表中 我遇到的问题是 LINQ 没有提供 Add 方法来传递新记录 我见过无数有 Add 方法的例子 但我似乎无法理解它 我完全错过了什么还
  • 当 Node 后端 (MongoDB) 中的状态发生变化时通知 Angular 前端

    当 MongoDB 中的状态发生变化时 我希望实时更新 Angular 前端 我的选择是什么 除了例如 还有其他方法吗 使用socket io 场景 用户创建提醒 设置电子邮件到达其邮箱的日期 现在 为了添加和删除提醒 我可以在前端模拟实时
  • Android EditText 空间验证

    我的 Android 应用程序中有一个 Edittext 我不想允许用户输入第一个空格字符 但是输入其他字符后用户也可以输入空格 I used
  • 告诉 Ctags 不要解析评论中的内容

    当我生成 ctags 文件时 它似乎也在解析注释中的内容 例如 使用 Vim 的插件 Tagbar 我可以在函数列表中看到不存在的函数 例如 is in just 这里发生的情况是 ctags 正在进入评论并发现以下内容 This func
  • 如何使用 CSS 使某个区域不可点击?

    假设我有包含一些链接和图像的包装 div 有什么方法可以仅使用 CSS 立即停用它吗 审查答案后 我放弃了只用 CSS 就能实现的想法 jQuery blockUI 插件就像魅力一样 有一个 CSS 规则 pointer events no
  • Laravel:如何从查询结果中获取模型?

    假设我有一个查询 除其他外 返回用户 ID 该查询是使用DB table 而不是使用模型 因此 我得到了一个集合 其中包含每个检索到的行的数组 如下所示 user id calculated data 1 123 2 111 3 222 假
  • 防止 lxml 在 ` 中转义 & 符号 ` 写入文件时

    我需要向现有 XML 元素添加一个属性 该属性必须包含 实体内的字符 例如 x0d 将修改后的 XML 写入文件时 变成 amp 从而摧毁该实体 import lxml etree as et e et Element a e set at
  • 基于公共密钥分析数据的简单方法

    处理映射到特定键的所有记录并输出该数据的多个记录的最简单方法是什么 例如 综合示例 假设我的密钥是日期 值是带有测量温度的当天时间戳 我想将一天内的温度分为高 平均 低 同样 低于 高于平均值 1 个标准偏差 输出将是具有新分类的原始温度
  • 在 Android 中创建和处理应用程序超时

    我想知道处理应用程序超时的最佳方法是什么 例如 PayPal 我希望用户选择 1 5 或 15 分钟的超时时间 这样当他们打开应用程序时 他们必须再次登录 我的 onResume 方法 Override public void onResu
  • 按 15 分钟间隔对数据集进行分组

    我正在尝试为我们的内部公司系统建立平均会话量 问题是范围大约向后三个月 我想按 15 分钟间隔对这整组大数据进行分组 因此输出将如下所示 interval sess avg 12 00 12 15 300 12 15 12 30 350 e