簡體   English   中英

SQL-選擇前n行,其后n行的值是連續的+ 1

[英]SQL - Select first n row where next n Row values are sequential + 1

我有一張帶有行ID和Cct號的表。 Cct列可以為+1順序,具體取決於前面的select語句。

我想找到第一行,接下來的n行cct號。 遞增+1到n-1。

樣品

ID    Cct
1      1
2      3
7      5
8      6
10     9
11     10
12     11

如果n = 2我想選擇ID為7的行,因為這是下n行cct值第一次為value + 1

如果n = 3,我想選擇ID為10的行,因為接下來的n-1行將增加+ 1

希望這很清楚

我想我明白了。 您正在尋找數據中序列的長度,其中序列以1遞增。

您可以使用row_number()row_number()來識別它們-序列的差異是固定的。

所以:

select top 1 min(id), count(*) as length
from (select s.*, (cct - row_number() over (order by id)) as grp
      from sample s
     ) s
group by grp
having count(*) >= @n
order by min(id)

這是第一次長度(至少) @n的序列出現在數據中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM