查找连续数中的缺失数据

表中有一列index,是从1开始按顺序编号,现在有数据缺失导致序号不连续,我可以怎么写sql找出缺失的序号,例如按序号排序之后后一行序号比当前行序号大于1的数据。

请先 登录 后评论

2 个回答

wale

可以用deltas函数,例如:

t=table(1..10 join [12, 14,16] as id) 
select id from t where deltas(id)>1

上述t表中id从10跳到12,14,16,select语句能把12,14,16查询出来。

请先 登录 后评论
blliu

假设有一个表如下:

t = table(1..10 join [12 14 16] as index);

可以用以下方式实现

select id from table(min(ids)..max(ids) as id) where id not in (select id from t);
请先 登录 后评论
  • 2 关注
  • 0 收藏,1138 浏览
  • LEE 提出于 2021-08-30 09:08

相似问题