我会通过获取下一个值来实现这一点。然后做一些算术运算:
select m_fon_rcd_id + 1 as gapstart, next_m_fon_rcd_id - 1 as gap_ends,
(next_m_fon_rcd_id - m_fon_rcd_id - 1) as gap_length
from (select m_fon_rcd_id,
(select m2.m_fon_rcd_id
from tbl_misure_30m m2
where m2.m_fon_rcd_id > m.m_fon_rcd_id
order by m_fon_rcd_id
limit 1
) as next_m_fon_rcd_id
from tbl_misure_30m m
) m
where next_m_fon_rcd_id > m_fon_rcd_id + 1;
编辑:
如果您想在
m_fon_id
,您可以将其添加到查询的各个部分:
select m_fon_id, m_fon_rcd_id + 1 as gapstart, next_m_fon_rcd_id - 1 as gap_ends,
(next_m_fon_rcd_id - m_fon_rcd_id - 1) as gap_length
from (select m_fon_rcd_id,
(select m2.m_fon_rcd_id
from tbl_misure_30m m2
where m2.m_fon_id = m.m_fon_id and
m2.m_fon_rcd_id > m.m_fon_rcd_id
order by m_fon_rcd_id
limit 1
) as next_m_fon_rcd_id
from tbl_misure_30m m
) m
where next_m_fon_rcd_id > m_fon_rcd_id + 1;