问题标签 [gaps-and-islands]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5498 浏览

sql - 在没有的查询的返回中插入日期

我们正在构建一个查询来计算每天每小时的事件数。大多数日子有几个小时没有任何活动,因此运行查询的地方会显示每小时的活动计数,但存在差距,查询将这些活动排除在外。我们仍然希望显示没有活动的时间并显示零,以便随后可以绘制零值。我们使用的查询看起来像这样……</p>

0 投票
2 回答
1455 浏览

sql-server - 如何使用 SQL Server 对范围值进行分组

我有一个像这样的值表

如您所见,第二个数字添加到第一个数字是序列中下一个数字之前的 1 个数字。最后一个数字不在范围内(不遵循直接顺序,如在下一个值中)。我需要的是一个 CTE(是的,理想情况下),它将输出这个

第一行包含范围的起始编号,然后是其中节点的总和。下一行是下一个范围,在此示例中与原始数据相同。

0 投票
22 回答
157271 浏览

mysql - 获取两个日期之间的日期列表

使用标准 mysql 函数有一种方法可以编写一个查询,该查询将返回两个日期之间的天数列表。

例如,给定 2009-01-01 和 2009-01-13 它将返回一个包含值的单列表:

编辑:看来我还不清楚。我想生成这个列表。我有存储在数据库中的值(按日期时间),但希望它们在左外连接上聚合到上面的日期列表(我希望这些连接的右侧有几天为空,并将处理这个)。

0 投票
15 回答
37012 浏览

sql - 在 SQL Server 中查找最小的未使用数

如何在 SQL Server 列中找到最小的未使用数字?

我即将从 Excel 中将大量手动记录的记录导入到 SQL Server 表中。它们都有一个数字 ID(称为文档编号),但由于不再适用的原因,它们没有按顺序分配,这意味着从现在开始,当我的网站记录新记录时,它需要为其分配尽可能小的文档编号(大于零)尚未采取。

有没有办法通过普通的 SQL 来做到这一点,或者这是 TSQL/代码的问题?

谢谢!

编辑

特别感谢WW提出并发问题。鉴于这是一个 Web 应用程序,它根据定义是多线程的,任何面临同样问题的人都应该考虑使用代码或数据库级别的锁来防止冲突。

LINQ

仅供参考 - 这可以通过 LINQ 使用以下代码完成:

nextNewNum == 5

0 投票
7 回答
4778 浏览

sql - 如何在 T-SQL 中根据前几个月的数据确定缺失月份的值

我有一组在特定时间点发生的交易:

数据可能是:

假设 TransactionValue 设置了某种级别,我需要知道事务之间的级别。我需要在一组 T-SQL 查询的上下文中使用它,所以最好能得到这样的结果集:

请注意,对于每个月,我们如何获取交易中指定的值,或者获取最新的非空值。

我的问题是我不知道如何做到这一点!我只是一个“中级”级别的 SQL 开发人员,我不记得以前见过这样的事情。自然地,我可以在程序中创建我想要的数据,或者使用游标,但我想知道是否有更好的、面向集合的方法来做到这一点。

我使用的是 SQL Server 2008,所以如果有任何新功能有帮助,我很想听听。

PS如果有人能想出一个更好的方式来陈述这个问题,甚至是一个更好的主题行,我将不胜感激。我花了很长时间才决定“传播”虽然很蹩脚,但却是我能想到的最好的。“涂抹”听起来更糟。

0 投票
6 回答
30686 浏览

mysql - MySQL:选择范围内的所有日期,即使没有记录存在

我有一个用户数据库。我想创建一个基于用户群增长的图表。我现在的查询是:

几乎返回了我想要的。如果我们一天有 0 个用户,那一天不会作为 0 值返回,它只是被跳过并返回至少有一个用户的第二天。我怎样才能得到类似(psuedo-response)的东西:

其中零日期与其余日期按顺序显示?

谢谢!

0 投票
16 回答
114868 浏览

sql-server-2005 - 查找缺失序列号的 SQL 查询

我有一个名为sequence. 此列中的数据看起来像 1、2、3、4、5、7、9、10、15。

我需要从表中找到丢失的序列号。什么 SQL 查询会从我的表中找到缺失的序列号?我期待这样的结果

我只使用一张桌子。我尝试了下面的查询,但没有得到我想要的结果。

0 投票
4 回答
3570 浏览

mysql - GROUP BY 用于 SQL 中的连续行

给定下表:

问题:
我怎样才能通过字段“状态”进行分组,同时仍然保持状态变化之间的边界?

结果如下:

但这是所需的输出:


这在 SQL 中可能吗?到目前为止我还没有找到解决方案...
0 投票
19 回答
12426 浏览

sql - SQL 来确定访问的最小连续天数?

以下用户历史记录表包含给定用户访问网站的每一天的一条记录(在 24 小时 UTC 时间段内)。它有数千条记录,但每个用户每天只有一条记录。如果用户当天没有访问该网站,则不会生成任何记录。

我正在寻找的是该表上具有良好性能的 SQL 查询,它告诉我哪些用户 ID 连续 (n) 天访问了该网站而没有错过任何一天。

换句话说,有多少用户在此表中有 (n) 条记录,其日期是连续的(前天或后天)?如果序列中缺少任何一天,则序列中断,应从 1 重新开始;我们正在寻找已经在此连续使用天数且没有间隔的用户。

当然,此查询与特定 Stack Overflow 标志之间的任何相似之处纯属巧合.. :)

0 投票
21 回答
67259 浏览

sql - 如何在使用 SQL 的运行计数器中找到“差距”?

我想在 SQL 表的计数器列中找到第一个“间隙”。例如,如果有值 1、2、4 和 5,我想找出 3。

我当然可以按顺序获取值并手动完成它,但我想知道是否有办法在 SQL 中完成它。

此外,它应该是非常标准的 SQL,可以与不同的 DBMS 一起使用。