SQL Server 2012 中的编号岛

2024-01-07

我需要对 SQL Server 2012 中的岛屿进行编号。岛屿被定义为一组行,其中之间没有天数间隔DateFrom and DateTo同一内ItemId).

以下数据集:

CREATE TABLE #Ranges (ItemId INT, DateFrom DATETIME, DateTo DATETIME)

INSERT INTO #Ranges VALUES (1,'2015-01-31','2015-02-17')
INSERT INTO #Ranges VALUES (1,'2015-02-18','2015-03-31')
INSERT INTO #Ranges VALUES (1,'2015-04-14','2015-05-21')
INSERT INTO #Ranges VALUES (2,'2015-07-12','2015-07-19')
INSERT INTO #Ranges VALUES (2,'2015-07-20','2015-07-24')
INSERT INTO #Ranges VALUES (2,'2015-07-26','2015-08-02')
INSERT INTO #Ranges VALUES (2,'2015-08-03','2015-08-07')

应编号如下:

ItemId;  DateFrom;    DateTo;      Number
1;       2015-01-31;  2015-02-17;  1
1;       2015-02-18;  2015-03-31;  1
1;       2015-04-14;  2015-05-21;  2
2;       2015-07-12;  2015-07-19;  3
2;       2015-07-20;  2015-07-24;  3
2;       2015-07-26;  2015-08-02;  4
2;       2015-08-03;  2015-08-07;  4

非常感谢任何帮助。

问候, 普热梅克


如果你只想给它们编号,那么我建议lag()累计总和:

select t.*,
       sum(case when datefrom = dateadd(day, 1, prev_dateto
                then 0 else 1
           end) over (order by itemId, datefrom)
from (select t.*,
             lag(dateto) over (partition by itemid order by datefrom) as prev_dateto
      from table t
     ) t;

The case决定新岛屿的开始位置。累积和只是对该标志求和。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 2012 中的编号岛 的相关文章

  • 如何创建针对不同渠道不同的数据库序列?

    我们有一个要求 即需要为不同的渠道维护不同的数据库序列 例如 ABC SQN1 XYZ 1 序列号需要根据通道递增 有没有办法我们可以实现它 Thanks 你的问题不清楚 请更详细地描述要求 我知道你想要一些序列并有条件地增加它们 这样 c
  • Python 和 SQLite:插入表

    具有以下表架构 tablename name varchar 100 age int sex char 1 有一个list有 3 行 每行代表一个表行 row1 laks 444 M row2 kam 445 M row3 kam 445
  • 检查行是否存在,Laravel

    我有以下数据库结构 items id name user id users table id name user favorites table id user id item id 在我的项目永久链接页面上 我有一个 添加到收藏夹 按钮
  • 具有多个表的 SQL select 语句

    给出以下两个表 Person table id pk first middle last age Address table id pk person id fk person id street city state zip 如何创建返回
  • SQL LIKE 的 C# 版本

    有没有办法在 C 中搜索字符串中的模式 像 Sql LIKE 这样的东西会非常有用 正则表达式允许一切LIKE允许以及更多 但具有完全不同的语法 然而 由于规则LIKE是如此简单 其中 表示零个或多个字符 并且 表示一个字符 并且两者LIK
  • End using 是否关闭打开的 SQL 连接

    如果我将 SQLConnection 包装在 using 中 我应该关闭它还是最终 using 处理它 using cn as new system data sqlclient sqlconnection cn open do a bun
  • 如何在Oracle中获取每周数据

    我制作了一个矩阵报告 其中需要根据选择参数动态显示列 我有一个日期选择参数 如果我在选择参数上选择日期为 03 01 2010 2010 年 3 月 1 日 那么它应该显示为 3 月 1 日 3 月 7 日 这取决于你追求什么 如果您在接下
  • 限制 SQL 查询的响应时间

    我在这里发布了一个关于我的 gridview 绑定的问题 将GridView与多条记录绑定 https stackoverflow com questions 5599704 bind gridview with many records
  • 使用 C# 检索 SQL Server 中具有 varchar 数据类型的字段的大小

    我正在使用 VS 2010 和 SQL Server 2008 在 ASP NET 中创建一个项目 我想检索具有以下内容的列的大小varchar数据类型 e g Varchar 20 我想要 20 而不是最大可能的大小varchar使用 C
  • SQL LIKE 实际上是如何工作的

    例如 当我有这样的字符串时 ABBBCSLAK JDK ASAAAAFJKDSKJFSDF 当我像这样使用 SQL 时 SELECT FROM table WHERE column LIKE JDK 当服务器访问 JDK 时到底会发生什么
  • Oracle 中的 if(条件, then, else)

    MySQL MSSQL 有一个简洁的小内联 if 函数 您可以在查询中使用它来检测空值 如下所示 SELECT foo a field AS a field SELECT if foo bar is null 0 foo bar AS ba
  • 通过sql视图向多个表插入数据

    mysql 有没有办法通过视图向多个表插入数据 MySQL 参考手册对于可更新视图是这样说的 一些视图是可更新的 也就是说 您可以在诸如以下的语句中使用它们UPDATE DELETE or INSERT更新基础表的内容 为了使视图可更新 必
  • mysql 中的 SELECT UNION 和 ORDER BY.. 如何?

    我想从单个表中获取所有行 但以不同的方式对它们进行排序 例如我写 SELECT FROM table1 ORDER BY fieldA ASC LIMIT 3 UNION SELECT FROM table1 ORDER BY FieldB
  • SQL 中WITH 子句的使用指南

    我了解如何使用WITH递归查询子句 但我在理解它的一般用途 功能时遇到问题 例如 以下查询更新一条记录 其 id 是通过使用按时间戳返回第一条记录 id 的子查询来确定的 update global prospect psp set sta
  • 一张 400GB 表,一个查询 - 需要调优思路 (SQL2005)

    我有一个大表 我想对其进行优化 我正在使用 MS SQL 2005 服务器 我将尝试描述它的使用方式 如果有人有任何建议 我将非常感激 该表约400GB 有1亿行 每天插入100万行 该表有 8 列 1 列数据和 7 列用于查找 排序 k1
  • SQL 缓存依赖关系的性能问题

    我正在开发一个项目 我们正在考虑将 SQLCacheDependency 与 SQL Server 2005 2008 一起使用 我们想知道这将如何影响系统的性能 所以我们想知道以下问题 SQLCacheDependency 对象 查询通知
  • 两个sql查询的性能差异?

    我的表中有一个具有文本数据类型的字段 以下两个sql查询的性能是否有差异 select from tablename where fieldname xyz select from tablename where fieldname zyx
  • QSqlDatabasePrivate::removeDatabase:连接“myConnectionName”仍在使用中,所有查询将停止工作

    我有一个文件夹 里面有很多数据库 有时可能会删除或添加数据库到该文件夹 所以我使用 QTimer 并读取所有数据库 这是我的代码 this gt timer new QTimer this this gt timer gt setInter
  • 如何在 JPA/Hibernate 中执行本机 SQL 脚本?

    我有一个带有数据库转储的 SQL 脚本 我如何使用 Hibernate 执行它EntityManager 我这样尝试过 EntityManager manager getEntityManager Query q manager creat
  • 依靠条件连接大表的速度很慢

    当表很小时 这个查询有合理的时间 我试图找出瓶颈是什么 但我不知道如何分析EXPLAIN结果 SELECT COUNT FROM performance analyses INNER JOIN total sales ON total sa

随机推荐

  • 用六边形填充圆

    我正在尝试找到一种方法 将尽可能多的六边形放在一个圆圈中 到目前为止 我获得的最好结果是从中心向外生成圆形的六边形 但我认为我的计算得到最大六边形圆是错误的 尤其是我使用的部分Math ceil and Math Floor向下 向上舍入某
  • 我应该使用 JSPX 而不是 JSP 吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Using 开发者 http www oracle com technology products jdev 我开始为工作中的一个项目开发一组网
  • 在 php 中生成唯一的 id(用于 url 缩短器)

    如何使用 0 9 a z 和 A Z 在 php 中生成最多 6 个字符的唯一组合 这些可能有多少种组合 例如 Aaaa 将与 Aaaa 不同 Using base convert number 10 36 不会治疗a z不同于A Z正如问
  • 如何在1.9.2上安装SystemTimer?

    我刚刚使用 RVM 将我的应用程序从 1 8 7 升级到 1 9 2 并且必须添加 RubyGems 和 Bundler 运行捆绑安装并让除 SystemTimer 之外的所有内容正常工作 Google fu 没有返回任何内容 我看到其他人
  • JS 不可枚举函数

    我正在尝试定义一个不可枚举的toJSON在原型对象上运行函数没有太多运气 我希望有类似于 ECMAScript 5 的东西toJSON Object defineProperty obj prop enumerable false 然而 这
  • matlab获取图像上的鼠标坐标而无需单击(鼠标悬停时)

    我已经在谷歌上搜索了一段时间 以找到这个看似简单问题的解决方案 在鼠标移动 无需单击 时获取图像轴中的鼠标坐标 我发现impixelinfoval正是这样做的 但我无法从中提取像素坐标uicontrol在脚本中 它们存储在某个字段中吗 我还
  • 需要加快我的 SVG 速度。我可以转换为 WebGL 或画布吗?

    我有一张包含 10138 个零件的 SVG 绘图 因此运行速度很慢 我想让它运行得更像http workshop chromeexperiments com globe http workshop chromeexperiments com
  • 如何使元素的高度与浏览器分辨率相同?

    我正在尝试使用 jquery 将元素的高度设置为等于用户浏览器 这是我到目前为止得到的代码 但不起作用 是因为我在CSS中设置了最小高度吗 我确实需要该类来等于用户的分辨率 将变量设置为window innerHeight document
  • 与 nl2br 相反?是str_replace吗?

    所以函数 nl2br 很方便 除了在我的网络应用程序中 我想做相反的事情 将换行符解释为新行 因为它们将被回显到预填充的表单中 str replace 可以采取 br 并将其替换为我想要的任何内容 但如果我输入 n 它实际上会回显反斜杠和
  • 通过 gson 解析带有混合子对象的 json 并作为列表发送回来

    我面临着与解析 json 相关的问题 其中包含子类的混合数组 我需要将其作为 java 列表提供给客户端 示例 JSON status OK results type one Id 2170676 count 456 title title
  • CI 服务器上的 WCF 编译错误:未找到 Microsoft.VisualStudio.ServiceModel.targets

    我在 CI 服务器上收到此错误 错误 MSB4019 找不到导入的项目 C Program Files x86 MSBuild Microsoft VisualStudio WCF Microsoft VisualStudio Servic
  • 在 Angular2 中将 Blob 保存为 xlsx

    我在保存时遇到一些问题xlsx在我的 Angular2 应用程序中 this http get api file subscribe success gt var blob new Blob success json type applic
  • 无法通过XAMPP生成SSL证书

    我一直在尝试生成用于本地测试的 SSL 证书 当我cd into xampp apache 并运行makecert我收到以下错误 WARNING Can t open config file bin openssl cnf Error op
  • 无法解析:com.android.support:appcompat-v7.27.+ [重复]

    这个问题在这里已经有答案了 我正在尝试使用 Nougat 7 0 在 Android Studio 中创建一个新项目 但是 一旦我打开项目 我就会收到以下 Gradle 错误 无法解决 com android support appcomp
  • WPF 事件属性已更改?

    我必须实现什么接口才能在某些事情发生变化时创建 wpf 事件 INotifyPropertyChanged It s in 系统组件模型 http msdn microsoft com en us library system compon
  • 更新到 AGP 3.2.0 后,BuildConfig.VersionCode 未反映实际的 versionCode

    更新到AGP Android Gradle Plugin 3 2 0后我们无法设置versionCode直接在一个mergedFlavor 如果我们这样做 我们会得到这个有用的警告 versionCode cannot be set on
  • 如何正确实现 Java 中检测资源泄漏的终结器

    假设我已经创建了一些带有 close 方法的资源类来清理资源 并且如果有人忘记调用 close 我想重写 Finalize 来释放资源 并打印警告 如何正确地做到这一点 是否仅建议用于本机 JNI 分配 资源 如果您使用终结器对另一个已终结
  • 错误消息“gradlew:找不到命令”

    我正在开发一个 Java 项目Gradle 包装器 https docs gradle org current userguide gradle wrapper html sec using wrapper gradlew 我使用 Ubun
  • 为 mariadb 10 Ubuntu 13.10 安装 mysqldb python 接口时找不到 mysql_config

    在我安装 Mariadb 10 后 Mysql 工作台和 JPDB 客户端都连接并正常工作 所以下一步是使用 Python 进行编程 使用 SQLAlchemy 这似乎需要 MySQL python 所以我去更新它并得到 找不到 mysql
  • SQL Server 2012 中的编号岛

    我需要对 SQL Server 2012 中的岛屿进行编号 岛屿被定义为一组行 其中之间没有天数间隔DateFrom and DateTo同一内ItemId 以下数据集 CREATE TABLE Ranges ItemId INT Date