[英]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.