[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) p_id ,--上一个ID的值       t.city_id c_id,                                                                               --当前的ID值       last_value(t.city_id)over(order by t.city_id rows between 1 preceding and 1 following )n_id,  --后一个ID的值       t.city_parent_id,t.city_name     from city t     --where t.city_id < 100   ) a   where a.p_id + 1 <> a.c_id and c_id -1 > 0 ) 在上面的SQL语句中 first_value(field) 函数,哪一列的值 over(order by t.city_id rows between 1 preceding and 1 following)  是 field 列当中当前行的 前一行的以后一行。 first_value(t.city_id)over(order by t.city_id rows between 1 preceding and 1 following) 是获取city_id列当前行的前一行的值。 last_value(t.city_id)over(order by t.city_id rows between 1 preceding and 1 following ) 获取当city_id列当前行的下一行的值。

oracle11 不更新记录,oracle11g 使用first_value获取表中不连接的ID号及掉失记录数量...相关推荐

  1. sql INNER JOIN 取得两个表中存在连接匹配关系的记录(mysql)

    首先:JOIN 通常与 ON 关键字搭配使用 其次我们来看我们的两个表格: table1: table2: 在这里,INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. 例 ...

  2. java实现数据库主键的更新_Java获取数据库自增主键表中插入数据的ID

    这段代码是为了解决,JDBC中在给自增表插入数据后获取插入数据自动生成的ID问题.上网找了半天资料,原来在JDK中有提供方法哎. 参考资料点击打开链接感谢诸位高手的指点. 直接上代码吧: /** * ...

  3. 用一条sql获取分组中最大值时的ID

    2019独角兽企业重金招聘Python工程师标准>>> 我们往往需要对一张表做group by操作,然后在每个组里通过聚合函数获取想要的信息.但是,如果需要同时对不同的列使用两个或者 ...

  4. jdbc获取mysql 列信息_JDBC获取数据库信息:获取表中各列的信息

    ResultSet getColumns(String catalog,String schemaPattern,String tableNamePattern,String columNamePat ...

  5. SQL提取表中某列字符长度为2的所有记录

    有一个表WB,包含两列character和wb  //表中数据截图如下 从图中可以看出wb列的各行数据的长度是不一样的, 现在我想把wb列中长度为二,即只有两个字符的所有记录 给提取出来,我们该如何写 ...

  6. 初一计算机说课记录,初中信息技术《工作表中数据的处理》说课稿

    初中信息技术<工作表中数据的处理>说课稿 各位评委: 大家好! 我说课的内容是"工作表中数据的处理". <工作表中数据的处理>是江苏省初中<信息技术& ...

  7. 记录一下误删除了mysql表中的数据后的恢复过程

    用navicat删除数据库中的入侵数据,导致删顺手了,把一些看似重复数据的重要数据在表中直接右键删除掉了(相当于delete from table命令),而该数据库没有做过这些数据的备份,同时没有开启 ...

  8. 【Mysql】 获取表中一段时间范围内的数据

    时间的获取 NOW() CURDATE() CURTIME() 2021-08-23 13:37:46 2021-08-23 13:38:48 DATE_SUB() 获取当前日期前一天 获取当前日期的 ...

  9. 获取表中以某个拼音开头的记录

    今天在在论坛上有个帖子里的回帖中一个朋友贴出了一个不错的函数,如果记录中有中文的话,通过使用这个函数,可以比较容易的判别出哪些记录是以某个特定首字母拼音开头的. 函数如下 CREATE OR REPL ...

最新文章

  1. c语言ctype中替换查找字符,c – std :: ctype是否总是按“C”语言环境对字符进行分类?...
  2. 桌面支持--ZWMECH软件卸载工具
  3. 在CcentOS系统上将deb包转换为rpm包
  4. 如何创建高质量的TypeScript声明文件(五) - 示例
  5. boost::spirit::multi_pass相关的测试程序
  6. innodb_flush_log_at_trx_commit
  7. GoLang:你真的了解 HTTPS 吗?
  8. Spring源码 --Idea module 相互引用
  9. windows mysql is read only_mysql中Table is read only错误解决方法(转载)
  10. 避坑!使用 Kubernetes 最易犯的 10 个错误
  11. java中trim_java中string.trim()函数的作用实例及源码
  12. SQL语句(九)使用特殊关系运算符查询
  13. ESP8266 WIFI模块开发入门1 开发环境搭建
  14. 千个Excel文件合并为一个文件
  15. Tushare财经数据调取方法(行情数据)
  16. 全球与中国单模连续光纤激光器市场现状及未来发展趋势
  17. SpringCloud(2)--服务调用
  18. 【机器学习】补完计划
  19. js find(),findIndex()方法的使用
  20. Pandas数据分析案例(盛华化工锅炉排放数据可视化分析)

热门文章

  1. bootstrap -- 一个标签中,同时有 col-xs , col-sm , col-md , col-lg
  2. Oracle ORA-00903:表名无效
  3. 【深入理解JVM】JVM字节码指令集
  4. 数据库3(DBUtils)
  5. 【整理】Linux常用命令
  6. Kafka入门经典教程【转】
  7. Android中Messenger的使用
  8. 关于H3C MSR路由器L2TP隧道协议路由配置的特点
  9. 可惜Java中没有yield return
  10. 想找一个写Wiki的工具