AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[interval](dba)

Martin Hope
hem6d
Asked: 2022-03-24 19:24:07 +0800 CST

在 Postgresql 中计算具有时间间隔的总数据

  • 0

我有一个问题,我想以 1 小时间隔计算总数据。但是开始时间是7:30

Time                   Status
2022-03-24 07:36:00,   Fail
2022-03-24 07:59:00,   Pass
2022-03-24 09:32:00,   Pass
2022-03-24 09:41:00,   Pass
2022-03-24 10:02:00,   Fail
2022-03-24 11:02:00,   Pass
2022-03-24 11:22:00,   Fail

您可以看到在 8:30 之前我有 2 个数据,其中 1 个通过(07:59)和 1 个失败(07:36),所以我可以计算它并在下面创建数据

Time                Status  Total
2022-03-24 08:30    Pass    1
2022-03-24 08:30    Fail    1
2022-03-24 09:30    Pass    0
2022-03-24 09:30    Fail    0
2022-03-24 10:30    Pass    2
2022-03-24 10:30    Fail    1
2022-03-24 11:30    Pass    1
2022-03-24 11:30    Fail    1
postgresql interval
  • 1 个回答
  • 473 Views
Martin Hope
crmpicco
Asked: 2021-03-03 19:01:48 +0800 CST

获取使用 PostgreSQL/intervals 运行查询的上个月的开始和结束日期

  • 0

我正在寻找一种方法来获取运行查询的上个月的开始和结束日期时间,我可以在查询中重复使用。

我正在查看,interval但我希望查询能够解决,如果我在 2021 年 3 月运行查询,我正在寻找从“2021-02-01 00:00:00”到“2021-02-28 23”的数据: 59:59'。

这可能使用interval或类似的东西还是需要一个中间步骤?

postgresql interval
  • 1 个回答
  • 4470 Views
Martin Hope
Michael Green
Asked: 2021-01-06 05:40:40 +0800 CST

分割区间

  • 0

我有两张桌子。每个都包含业务实体的一些属性以及这些属性有效的日期范围。我想将这些表合并为一个,匹配通用业务键上的行并拆分时间范围。

真实世界的示例是两个源时态表,为数据仓库中的类型 2 维表提供数据。

该实体在任何时间点都可以不存在于任何一个源系统中,也可以存在于一个源系统中,也可以同时存在于两个源系统中。一旦实体被记录在源系统中,间隔就会表现良好 - 没有间隙、重复或其他猴子业务。来源中的成员资格可以在不同的日期结束。

业务规则规定我们只想返回实体同时出现在两个源中的时间间隔。

什么查询会给出这个结果?

这说明了这种情况:

Month          J     F     M     A     M     J     J
Source A:  <--><----------><----------><---->
Source B:            <----><----><----------------><-->
               
Result:              <----><----><----><---->

样本数据

为简单起见,我使用了封闭的日期间隔;很可能任何解决方案都可以通过少量输入扩展到半开区间。

drop table if exists dbo.SourceA;
drop table if exists dbo.SourceB;
go

create table dbo.SourceA
(
    BusinessKey int,
    StartDate   date,
    EndDate     date,
    Attribute   char(9)
);

create table dbo.SourceB
(
    BusinessKey int,
    StartDate   date,
    EndDate     date,
    Attribute   char(9)
);
GO


insert dbo.SourceA(BusinessKey, StartDate, EndDate, Attribute)
values
    (1, '19990101', '19990113', 'black'),
    (1, '19990114', '19990313', 'red'),
    (1, '19990314', '19990513', 'blue'),
    (1, '19990514', '19990613', 'green'),
    (2, '20110714', '20110913', 'pink'),
    (2, '20110914', '20111113', 'white'),
    (2, '20111114', '20111213', 'gray');

insert dbo.SourceB(BusinessKey, StartDate, EndDate, Attribute)
values
    (1, '19990214', '19990313', 'left'),
    (1, '19990314', '19990413', 'right'),
    (1, '19990414', '19990713', 'centre'),
    (1, '19990714', '19990730', 'back'),
    (2, '20110814', '20110913', 'top'),
    (2, '20110914', '20111013', 'middle'),
    (2, '20111014', '20120113', 'bottom');

期望的输出

BusinessKey StartDate   EndDate     a_Colour  b_Placement
----------- ----------  ----------  --------- -----------
1           1999-02-14  1999-03-13  red       left     
1           1999-03-14  1999-04-13  blue      right    
1           1999-04-14  1999-05-13  blue      centre   
1           1999-05-14  1999-06-13  green     centre   
2           2011-08-14  2011-09-13  pink      top      
2           2011-09-14  2011-10-13  white     middle   
2           2011-10-14  2011-11-13  white     bottom   
2           2011-11-14  2011-12-13  gray      bottom    
sql-server interval
  • 3 个回答
  • 385 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve