选择按午夜时间分组的数据

2024-03-26

我有一个像这样的表:

ID       TIMEVALUE
-----    -------------
1        06.07.15 06:43:01,000000000
2        06.07.15 12:17:01,000000000
3        06.07.15 18:21:01,000000000
4        06.07.15 23:56:01,000000000
5        07.07.15 04:11:01,000000000
6        07.07.15 10:47:01,000000000
7        07.07.15 12:32:01,000000000
8        07.07.15 14:47:01,000000000

我想按特殊时间对这些数据进行分组。
我当前的查询如下所示:

SELECT TO_CHAR(TIMEVALUE, 'YYYY\MM\DD'), COUNT(ID), 
  SUM(CASE WHEN TO_CHAR(TIMEVALUE, 'HH24MI') <=700 THEN 1 ELSE 0 END) as morning,
  SUM(CASE WHEN TO_CHAR(TIMEVALUE, 'HH24MI') >700 AND TO_CHAR(TIMEVALUE, 'HH24MI') <1400 THEN 1 ELSE 0 END) as daytime,
  SUM(CASE WHEN TO_CHAR(TIMEVALUE, 'HH24MI') >=1400 THEN 1 ELSE 0 END) as evening FROM Table
WHERE TIMEVALUE >= to_timestamp('05.07.2015','DD.MM.YYYY')
GROUP BY TO_CHAR(TIMEVALUE, 'YYYY\MM\DD')

我得到这个输出

day          overall     morning    daytime    evening 
-----        ---------
2015\07\05   454         0          0          454
2015\07\06   599         113        250        236
2015\07\07   404         139        265        0

这样就可以在同一天进行分组(0-7 点、7-14 点和 14-24 点)
但我现在的问题是:半夜怎么组团?

例如,从第二天的 6 点到 14 点、14 点到 23 点、23 点到 6 点进行计数。

我希望你能理解我的问题。如果有更好的解决方案,欢迎您甚至改进我的上查询。


EDIT: 现在已经测试过了:SQL小提琴 http://sqlfiddle.com/#!4/6a7d8/2

关键就是调整一下group by这样早上 6 点之前的所有内容都会与前一天分组。之后,计数就非常简单了。

SELECT TO_CHAR(CASE WHEN EXTRACT(HOUR FROM timevalue) < 6
                    THEN timevalue - 1
                    ELSE timevalue
                    END, 'YYYY\MM\DD') AS day, 
       COUNT(*) AS overall, 
       SUM(CASE WHEN EXTRACT(HOUR FROM timevalue) >= 6 AND EXTRACT(HOUR FROM timevalue) < 14
                THEN 1 ELSE 0 END) AS morning,
       SUM(CASE WHEN EXTRACT(HOUR FROM timevalue) >= 14 AND EXTRACT(HOUR FROM timevalue) < 23
                THEN 1 ELSE 0 END) AS daytime,
       SUM(CASE WHEN EXTRACT(HOUR FROM timevalue) < 6 OR EXTRACT(HOUR FROM timevalue) >= 23
                THEN 1 ELSE 0 END) AS evening
FROM my_table
WHERE timevalue >= TO_TIMESTAMP('05.07.2015','DD.MM.YYYY')
GROUP BY TO_CHAR(CASE WHEN EXTRACT(HOUR FROM timevalue) < 6
                    THEN timevalue - 1
                    ELSE timevalue
                    END, 'YYYY\MM\DD');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择按午夜时间分组的数据 的相关文章

  • 以多列显示数据

    您好 我需要从 mySQL 表构建一个包含四列的表 这是我现在拥有的
  • 多列条件计数 SQL

    我正在尝试计算连续 4 个单独列中的不同条目 然后对结果求和 例如 表头看起来类似于 ID Col1 Col2 Col3 Col4 每列 保存 ID 可以有一个文本值 W X Y 或 Z 列可以有相同的值 我想做的是找出一种方法来计算列中的
  • Oracle SQL 上的条件 SUM

    我通过以下方式获得数据 ITEM LOCATION UNIT RETAIL QUANTITY 100 KS 10 10 200 KS 20 30 我想要正数量的总和 数量 gt 0 和负数量的总和 数量 如何根据条件获得这些列的总和 您可以
  • 如何对表中的每一行运行特定的sql查询?

    所以我的数据库中有两个表 它们看起来都是这样的 通讯 拨打电话 Timestamp FromIDNumber ToIDNumber GeneralLocation 2012 03 02 09 02 30 878 674 Grasslands
  • 如何搜索包含表情符号的文本?

    我们有一个 MySQL InnoDB 表 带有一个文本字段COLLATE utf8mb4 unicode ci 我需要搜索包含任何表情符号字符的行 我搜索了相当多的问题 但人们似乎有一个他们正在搜索的表情符号列表 我实际上正在寻找一种可以找
  • C# 中的多个 SQL 查询将变量作为列返回

    我正在开展一个创建注册系统的学校项目 我选择的数据库方法是使用 T SQL 因为它是我已经熟悉的东西 我正在使用下面的代码来查询数据库 public void button3 Click object sender EventArgs e
  • 在 MySQL 中存储 IPv6 地址

    正如 需要支持 ipv6 的 inet aton 和 inet ntoa 函数 http bugs mysql com bug php id 34037 目前没有用于存储 IPv6 地址的 MySQL 函数 用于存储 插入的推荐数据类型 函
  • 如何从单行创建多行 - 规范化表

    我对 SQL 很陌生 并试图弄清楚这一点 我有一个名为 BUDGET 的表 其中包含一年中每个月的 12 列 显示该月的预算余额 所以表格看起来像这样 Department Year Month1 Month2 Month12 ABCD 2
  • 您能否推荐一个 JQuery 插件来组成一组可映射到 SQL 查询的条件? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我发现了http redquerybuilder appspot com http redquerybu
  • EntityFramework 6 AddOrUpdate 不适用于复合或复合主键

    这个问题是我周末的噩梦 我有一张桌子AddOrUpdate无法正常工作 它不断添加但从不更新 我想做的就是当我使用以下命令将新实体添加到表中时AddOrUpdate我想要它检查AppointmentId and CompletionCode
  • Android 上的查询何时返回 Null?

    我似乎没有找到任何有关查询 插入或任何其他返回 null 的 SQL 方法的信息 但如果发生错误 它就会发生 我只是想知道游标为空是否意味着发生了错误 或者是否意味着没有选择任何行 例如 我不知道应该如何对待它 作为一个错误或可能不时发生的
  • BigQuery 中的 EXP() 返回浮点错误

    我有以下查询 SELECT EXP col FROM project dataset tablename Where col is FLOAT 但是 我收到此错误 Error Floating point error in function
  • 发生错误:“无法调用 nvarchar 上的方法。”

    我编写了一个查询来查找与特定问题相关的答案 但在运行此代码时收到此错误 无法调用 nvarchar 上的方法 select Posts Id as Answer ParentId as question User DisplayName a
  • 在列名中使用保留字

    这是一些简单的代码 但我只是不知道为什么我不能使用这个词作为表的实体 CREATE TABLE IF NOT EXISTS users key INT PRIMARY KEY NOT NULL AUTO INCREMENT username
  • 检索多行最后插入的 id

    当将数据插入具有自动递增 PK 的表时 我需要获取该密钥以在另一个语句中使用 正如许多问题所示 这可以在 PHP 中使用mysql insert id 但是 我一直将插入内容分组在一起 因此一次插入不止一行 我这样做是因为我猜测可能会存在一
  • Athena date_parse 用于具有可选毫秒字段的日期

    我在 S3 中有日期 使用它创建了 Athena 表 我在 S3 中有一些 json 格式的日期条目 在运行查询时 Athena 不接受这些条目作为日期或时间戳 使用 AWS Athena 它使用 Prestodb 作为查询引擎 示例 js
  • 将 SQL 依赖关系与 Azure 结合使用

    在我的本地数据库中 Sql 依赖关系工作正常 但是当我迁移到 Azure 数据库时 它就不起作用了 我检查服务代理是否已启用 并且它已激活 这是错误 此版本的 SQL Server 不支持语句 RECEIVE MSG 这是我的代码 publ
  • 如何在“Where”子句之前写“Order By”子句

    我想写一个ORDER BY我之前的子句WHERE条件 因为我需要将结果截断为 10 但我需要首先按字母顺序对它们进行排序 我知道你不能把ORDER BY before WHERE那我该怎么办呢 我需要做类似以下的事情 SELECT FROM
  • 插入到表中并在 SQL 中拆分字符串

    我想将分割字符串插入到我的表中 如您所见 create table Organization organizationId bigint provienceId bigint CityId bigint TownId bigint Inse
  • Oracle:SQL查询查找属于表的所有触发器?

    我怎样才能找到属于一个表的所有触发器 以下内容将独立于您的数据库权限而工作 select from all triggers where table name YOUR TABLE 以下备用选项可能有效也可能无效 具体取决于您分配的数据库权

随机推荐

  • 部分分支或部分合并或其他方式来帮助我同步点文件?

    我不知道如何使我的要求的标题简短 如果没有意义 抱歉 我在这里解释一下 许多人将他们的点文件放在 bitbucket 或 github 上 以方便以后的安装或配置 在不同的电脑上同步 我做了同样的事情 但是我想做一些特别的事情 我不确定 m
  • 如何在 Angular 6 中单击事件时在 matInput 元素上设置自动焦点?

    与 Google 登录页面类似 我希望在单击事件后自动聚焦于输入元素 我尝试过 ViewChild id 和 document getElementId id 两者都不起作用 它始终为 null 或未定义 我怎样才能实现这个目标
  • jQuery if 语句取决于 px 宽度

    我对 jQuery 很陌生 有人可以告诉我上面的 if 语句是否表达正确吗 如果变量的宽度等于 900px 我基本上希望运行一些东西 我的变量是var brewapp brewapp Thanks if brewapp width 900p
  • 编辑 woo commerce 特色产品小部件的 HTML

    我想修改 woo commerce 特色产品小部件的 HTML 代码 问题是我在模板文件夹 插件文件夹中找不到它 有人知道如何修改 woo commerce 的特色产品小部件吗 这是通过修改内容小部件产品 php模板 位于 woocomme
  • $_SERVER['SERVER_ADDR'] 值得信赖吗?

    我的网站严重依赖 SERVER SERVER ADDR 我可以信任检索到的数据吗 有可能找到空字符串吗 从 php 参考我引用了一些 看来这取决于托管 PHP 的服务器 尤其是 apache IIS http php net manual
  • 我什么时候会在 IntelliJ IDEA 中使用“将目录标记为...”选项?

    我是一个新人 正在寻找如何使用 IntelliJ IDE 的方法 目前我正在使用它在 Scala 中进行编码 在 项目 窗口中右键单击会弹出一个弹出窗口 其中包含 将目录标记为 选项 其中包含以下选项 来源根 测试源根 资源根 测试资源根
  • 在 SQL 字符串中使用 $variable?

    我希望能够从下拉列表中选择一个类别 并根据类别将其添加到与之相等的任何 SQL 表中
  • 大多数人都使用.NET的SqlMembershipProvider、SqlRoleProvider和SqlProfileProvider吗?

    大多数人在开发具有成员资格功能的站点时是否使用 NET 的 SqlMembershipProvider SqlRoleProvider 和 SqlProfileProvider 还是很多人都创建了自己的提供商 甚至完全是自己的会员系统 SQ
  • Swift 使滚动视图内容居中

    当用户当前位置移至屏幕框架之外时 我尝试将滚动视图视图居中并移动框架 目前我有一个 PDF 正在显示用户的当前位置 我正在计算框架和滚动视图的 ZoomScale 以在 PDF 视图上显示当前位置 我已经实现了这个功能 它运行完美 当用户移
  • 从 XML 绑定表达式调用控制器函数

    使用 OpenUI5 SAPUI5 根据文档XML 绑定表达式 https help sap com saphelp nw74 helpdata en da f6852a04b44d118963968a1239d2c0 content ht
  • Hibernate注释或XML配置

    我开始了一个新项目休眠 http en wikipedia org wiki Hibernate 28Java 29 Hibernate 注释是更好的选择还是 Hibernate XML 映射更好 我已经使用 Hibernate 和 XML
  • android 11 上 imageCapture 用例的camerax“未绑定到有效相机”

    我一直收到错误 未绑定到有效相机 当尝试实现 imageCapture 用例时 我正在按照camerax教程在Java中实现该功能here https codelabs developers google com codelabs came
  • 均匀分布图像库

    我有一个图像库 每个图像都有相同的宽度和高度 比如 10px 我希望它们间隔开 以便一行中有 5 个 并且它们在所有边上彼此间隔 5 像素 容器 div 具有 5px 内边距 有多个行 我的问题是 如果我给每个图像留出 5px 的左边距 那
  • 如何在 OS X 上使用键盘触发 VS Code IntelliSense?

    All the docs keep referring https code visualstudio com Docs editor debugging to Space to launch IntelliSense so as to g
  • 如何在 PHP 中调试多个会话?

    我正在开发一个项目 其中应用程序在开发模式下通过网络创建对同一应用程序的 Web 服务请求 以获得虚假数据和更好的开发环境 有时 当我调试时 我发现很难做到这一点 因为当您在同一个 PHP 安装上同时有两个调试会话时 XDebug 似乎不起
  • window.scrollTo 不滚动到提供的 id

    我正在处理一个文档文件 当单击 id about 的锚点时 我想滚动到 id projectpage 的所需部分 a class nav link page scroll href About Me a section 我尝试使用 a ab
  • 如何在发布过程中跳过文件夹删除?

    我无法做到这一点 因此从 Visual Studio 发布不会删除服务器网站上的 App Data 文件夹 但我也希望它继续删除所有文件 该文件夹除外 以保持目录 干净 我已经在 csproj pubxml 中尝试过这个 以及它的更改 有一
  • iOS 4 构建 SDK

    我昨天安装了 iOS 4 SDK 我之前安装过 3 1 2 3 1 3 和 3 2 SDK 自从安装了 iOS 4 SDK 以来 我在 Xcode 中只有 3 2 和 4 0 可用 当我加载针对旧版本 例如 3 1 2 的 Xcode 项目
  • Actionscript 3 数学不一致

    我正在尝试在 Flex actionscript 3 中构建一个计算器 但使用 Math 类得到了一些奇怪的结果 trace 1 4 4 should be 1 but it is 0 9999999999999999 trace 1 5
  • 选择按午夜时间分组的数据

    我有一个像这样的表 ID TIMEVALUE 1 06 07 15 06 43 01 000000000 2 06 07 15 12 17 01 000000000 3 06 07 15 18 21 01 000000000 4 06 07