Вы можете использовать оконные функции и предложение qualify
:
select t.*
from mytable t
qualify count(*) over(partition by id)
= 1 + max(floor(yyyymm / 100) * 12 + (yyymmm mod 100)) over()
- min(floor(yyyymm / 100) * 12 + (yyymmm mod 100)) over()
Предложение qualify
подсчитывает, сколько записей существует для текущего id
, и сравнивает его с общим числом yyyymmdd
s, который может быть вычислен путем вычитания его максимальных и минимальных значений (предполагается, что это числовое значение c, как оно выглядит).