当前位置: 首页 > 面试题库 >

PostgreSQL和顺序数据

艾仲渊
2023-03-14
问题内容

我有一个数据集,其中包含:

Table { date itemName }

该日期的大部分时间是连续的。日期没有重复(因为它是主键)。

该问题分为多个部分(全部与使用SQL有关):

  1. 是否可以在表格中列出的日期序列中找到空白?例如:1/2/09-1/3/09缺少日期
  2. 是否有可能找到表中缺少的日期部分,这些部分的范围大于n(这是在运行时确定的数字)?例如:对于n = 2日期1/2/09-1/3/09不返回,但日期5/6/09-6/1/09

问题答案:

只需在plsql或将要检查所有日期的客户端中创建一个函数即可。像这样的伪代码:

date checked_date = 2000-01-01;
int unchecked_section = 0;
while ( checked_date <= today() ) {
  if (! sql(select itemName from Table where itemName=checked_date)) {
    unchecked_section++;
  } else {
    if ( unchecked_section>=n ) {
      print checked_date-unchecked_section, checked_date
    }
    unchecked_section = 0;
  }
  checked_date++;
}
if ( unchecked_section ) {
  print checked_date-unchecked_section, checked_date
}

它不必非常快,因为它仅是维护。没有太多要检查的日期-一年只有365个。



 类似资料:
  • 问题内容: 如何在PostgreSQL中定义一列,以使每个值都必须按顺序排列,而不是使用类型时获得的顺序,而不能使值2插入,除非该列中已存在值1才能插入该值? 问题答案: 从理论上讲,您可以使用像这样工作的约束。(但是实际上它是行不通的。) 计算行数。 评估。 比较结果。 在创建CHECK约束之前,您可能必须插入一行。如果您不这样做,则max(column)将返回NULL。一排 计算行数(1)。

  • 在带有testng注释的测试类中首先调用什么方法: 用@DataProvider注释 用@beforeMethod注释 我的情况如下:

  • 如果我的ID是连续的,我如何使用Liquibase为PostgreSQL进行插入。我尝试以下几点: 我试着 错误是: 错误:列“id”中的空值违反了非空约束

  • 我理解二叉树可以通过以下方式轻松实现: 我还想出了一些遍历的方法: 但是,我给出了这个起始文件,其中树数据是三个数组:key[]、left[]和right[],所以key[]元素是节点的数据,left和right元素是第i个节点的左子节点和右子节点的索引,所以节点根是keys[0],左子节点keys[left[0]]和keys[right[0]。 我不确定如何(或者是否需要)使用Node和Bina

  • 本文向大家介绍yaml YAML顺序数据,包括了yaml YAML顺序数据的使用技巧和注意事项,需要的朋友参考一下 示例 同一列表级别: 嵌套列表:            

  • 问题内容: 为什么这些示例中的第一个不起作用,而其他所有示例都起作用? 问题答案: 这既不是范围问题,也不是关闭问题。问题在于 声明 和 表达式 之间的理解。 JavaScript代码(即使是Netscape的第一个JavaScript版本和Microsoft的第一个副本)也要分两个阶段处理: 阶段1:编译-在此阶段,代码被编译成语法树(字节码或二进制取决于引擎)。 阶段2:执行-然后解析解析的代