oracle11g 使用first_value获取表中不连接的ID号及掉失记录数量

本文介绍了如何使用Oracle11g的SQL查询来找出表格中city_id不连续的区间及其缺失数量。通过first_value和last_value函数结合窗口函数,可以有效地识别出数据丢失的ID范围并计算总数。
摘要由CSDN通过智能技术生成

 

[select * from city t order by t.city_id]

如上图中数据显示的那样,现在要求 city_id 此表中不连接的的ID号。
  0 ~ 11 之间丢失的数据是   1 ~ 10                丢失数量 10
15 ~ 21 之间丢失的数据是 16 ~ 20                丢失数量  5
....                                                           ....
显示出来的内容应该是
lost_id                                lost_sum
1~10,16~20                       15

最后如下图所示:

 

 

 

现在使用sql 显示上面的信息
select wm_concat(preced_id||'~'||last_id)lose_id,sum(last_id -preced_id + 1 ) lose_sum from (
  select p_id +1 preced_id,c_id -1 last_id,a.city_name from (
    select
      first_value(t.city_id)over(order by t.city_id rows between 1 preceding and 1 following)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值