Ada trik untuk melakukan ini. Jika Anda mengurangi urutan angka yang meningkat dari tanggal, maka angka tersebut akan konstan untuk tanggal yang berurutan. Kami kemudian dapat menggunakan ini untuk mendefinisikan grup untuk setiap pengembang.
select developer, max(numdays) as maxseq
from (select developer, grp, min(MRDate) as MR_start, max(MRDate) as MR_end,
count(distinct MRDate) as numdays
from (select t.*,
(MRDate - dense_rank() over (partition by developer order by date)) as grp
from t
) t
group by developer, grp
) t
group by developer;
Jika Anda tahu ada paling banyak satu catatan per tanggal, maka Anda dapat menggunakan row_number()
bukannya dense_rank()
dan count(*)
bukannya count(distinct MRDate)
.