Sql server 获取SQL中具有连续月份范围的行
我需要提取特定安装的连续日期,并拒绝所有没有连续日期的安装 比如说 以下是我的疑问:Sql server 获取SQL中具有连续月份范围的行,sql-server,tsql,Sql Server,Tsql,我需要提取特定安装的连续日期,并拒绝所有没有连续日期的安装 比如说 以下是我的疑问: SELECT Installation_no ,RDNG_STTS_CD ,UPDTD_DT ,ROW_NUMBER() OVER (PARTITION BY Installation_no ORDER BY UPDTD_DT ASC) AS RowNum FROM mrdg_tbl_download_DailyBKP WHERE RDNG_STTS_CD = '
SELECT
Installation_no
,RDNG_STTS_CD
,UPDTD_DT
,ROW_NUMBER() OVER (PARTITION BY Installation_no ORDER BY UPDTD_DT ASC) AS RowNum
FROM
mrdg_tbl_download_DailyBKP
WHERE
RDNG_STTS_CD = 'PL';
这产生了以下数据:
+-----------------+--------------+-------------------------+--------+
| Installation_no | RDNG_STTS_CD | UPDTD_DT | RowNum |
+-----------------+--------------+-------------------------+--------+
| 5000002099 | PL | 2018-05-14 11:47:01.050 | 1 |
| 5000002099 | PL | 2018-05-14 11:47:01.050 | 2 |
| 5000002101 | PL | 2018-06-19 14:39:33.633 | 1 |
| 5000002101 | PL | 2018-06-19 14:39:33.633 | 2 |
| 5000002101 | PL | 2018-07-19 16:07:23.723 | 3 |
| 5000002101 | PL | 2018-07-19 16:07:23.723 | 4 |
| 5000002110 | PL | 2018-01-04 15:49:08.017 | 1 |
| 5000002110 | PL | 2018-01-04 15:49:08.017 | 2 |
| 5000002187 | PL | 2018-01-23 14:51:59.160 | 1 |
| 5000002187 | PL | 2018-01-23 14:51:59.160 | 2 |
| 5000002187 | PL | 2018-03-25 12:39:43.343 | 3 |
| 5000002187 | PL | 2018-03-25 12:39:43.343 | 4 |
| 5000002187 | PL | 2018-04-27 16:31:20.420 | 5 |
| 5000002187 | PL | 2018-04-27 16:31:20.420 | 6 |
| 5000002187 | PL | 2018-05-29 17:54:20.520 | 7 |
| 5000002187 | PL | 2018-05-29 17:54:20.520 | 8 |
| 5000002187 | PL | 2018-06-28 17:10:12.613 | 9 |
| 5000002187 | PL | 2018-06-28 17:10:12.613 | 10 |
| 5000002438 | PL | 2018-01-31 16:03:38.137 | 1 |
| 5000002438 | PL | 2018-01-31 16:03:38.137 | 2 |
| 5000002438 | PL | 2018-03-04 15:19:41.340 | 3 |
| 5000002438 | PL | 2018-03-04 15:19:41.340 | 4 |
| 5000002438 | PL | 2018-04-04 16:45:01.040 | 5 |
| 5000002438 | PL | 2018-04-04 16:45:01.040 | 6 |
| 5000002438 | PL | 2018-05-07 15:58:54.553 | 7 |
| 5000002438 | PL | 2018-05-07 15:58:54.553 | 8 |
| 5000002438 | PL | 2018-06-07 14:26:45.647 | 9 |
| 5000002438 | PL | 2018-06-07 14:26:45.647 | 10 |
| 5000002438 | PL | 2018-07-10 15:53:54.753 | 11 |
| 5000002438 | PL | 2018-07-10 15:53:54.753 | 12 |
+-----------------+--------------+-------------------------+--------+
以上是一个示例数据。我在每个类别中都有大约200000条记录(这里的类别是“PL”)
我需要一个连续月份范围(第1、2、3、4、5个月)的独特安装
我尝试了堆栈溢出中的每一个示例,但无法得到准确的答案。是否可以在同一天进行多个安装?是否可以添加所需的结果?请定义“连续月份范围”。这是否意味着他们必须至少有一个月的时间?在这几个月里不能有间隔吗?允许的月数有最小值还是最大值?1。是的,多个安装将始终存在,2。连续月份(正如我已经提到的)第1个月、第2个月、第3个月、第4个月、第5个月和第6个月,我需要连续6个月的过滤器。3.有时,类别(“PL”)可能有间隙,例如,类别可能存在于第1个月,而不存在于第2个月,我不需要这些数据,我只需要连续的数据。我将在一段时间内发布所需的结果。。感谢您的回复期望的结果:安装编号:5000026931 2018-01-06 13:41:21.120 PL 5000026931 2018-02-06 14:14:04.023 PL 5000026931 2018-03-08 15:09:08.037 PL 5000026931 2018-04-08 12:49:31.430 PL 5000026931 2018-05-11 12:55:59.560 PL 5000026931 2018-06-12:13:16:55.657 PL 5000026931 2018-07-19:03以下查询产生了上述数据:从mrdg_tbl_download_DailyBKP中选择不同的安装编号、UPDTD_DT、RDNG_STTS_CD,其中安装编号='5000026931'按UPDTD_DT订购