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订购