sql_找出等差数列中的缺少项(非连续)
来源:互联网 发布:交换机端口设248 编辑:程序博客网 时间:2024/06/06 00:19
首先,有一张表的某一个字段是递增字段,现在需要找到递增字段中的缺少项。
举一个例子,1,2,3,4,6,7,8……这个数列中的缺少项就是5,我们的任务就是找出5。
以下操作基于mysql数据库:
1.创建一张表
create table t_increment(id int);
2.插入模拟数据
insert into t_increment(id) values(1);insert into t_increment(id) values(null);insert into t_increment(id) values(2);insert into t_increment(id) values(4);insert into t_increment(id) values(6);insert into t_increment(id) values(7);
3.查出该字段中缺少的数据
3.1:该表自己对自己做左连接查询
在本例中,等差为1,所以将id字段加1。
select a.id+1 c,b.id d from t_increment a left join t_increment b on a.id+1 =b.id;3.2:将3.1中查出的数据作为一张表,去除c字段为null的和排序后的最后一个,得到的就是最终的空缺字段
select * from (select a.id+1 c,b.id d from t_increment a left join t_increment b on a.id+1 =b.id) e where e.c is not null order by e.c;3.3最终结果(不包含最后一行)
+------+------+| c | d |+------+------+| 2 | 2 || 3 | NULL || 5 | NULL || 7 | 7 || 8 | NULL |+------+------+
- sql_找出等差数列中的缺少项(非连续)
- 数组中存放0到n中的缺少一个数的连续数,找出该缺少的数
- 找出最长的等差数列
- 找出字符串中的最长连续数字串
- 等差数列连续异或模板
- 找出缺少的数
- 找出一行字符串中的连续出现次数最多的字串
- 找出数组中的最大连续乘积子串
- 找出字符串中的最长连续数字子串
- 找出数组中长度最长的等差数列
- 找出、保存整形数组中的非重复项/重复项---java
- 请找出十个最小的连续自然数,它们个个都是合数(非素数)
- 找出十个最小的连续自然数,它们个个都是合数(非素数)。
- 找出10个最小的连续自然数,它们每个都是非素数
- 挑选缺少的连续数字
- oracle里面怎么查一个表中的日期字段的连续日期的缺少的日期
- PHP取两个数组中的差集(取出一串连续数字中缺少的数字)
- sql_查询一张表中的重复数据
- Lua和C语言的交互(一)
- 嵌入式系统概述
- gnuplot 入门教程
- POJ-1014-Dividing
- C++实现接口的技巧
- sql_找出等差数列中的缺少项(非连续)
- c# 通过CreateDC,BitBlt实现截图
- xorg-x11-drv-vmware
- C++中的_declspec(novtable)
- Ubuntu如何管理(添加或删除)开机启动程序
- 一步一步建立10万IP电影网站
- 有关分区表的另一点
- 32位整型“无穷大”“无穷小”的理解
- 2013第二周上机任务项目四(动态链表初试)