前几天同事问我一个问题,能不能用sql搞定这个问题:

我这里有一个张表table1中有time1,value1,有表table2有字段time2,value2。

现在要把table2中的value2更新到table1的value1中,要求time2距离time1最近。

一下子就想到之前学到的over partititon,但是只是学的时候操作了几个例子,一下子也没写上来。

后来找到一个教程http://blog.csdn.net/ayou2008/article/details/7179001

    1. select e.ename,
    2. e.job,
    3. e.sal,
    4. e.deptno,
    5. lead(e.sal, 1, 0) over(partition by e.deptno order by e.sal) lead_sal,
    6. lag(e.sal, 1, 0) over(partition by e.deptno order by e.sal) lag_sal,
    7. nvl(lead(e.sal) over(partition by e.deptno order by e.sal) - e.sal,
    8. 0) diff_lead_sal,
    9. nvl(e.sal - lag(e.sal) over(partition by e.deptno order by e.sal), 0) diff_lag_sal
    10. from scott.emp e;

稍微修改一下即可,diff_lead_sal, diff_lag_sal  和sal做差  两个差中找比较小的一个

请诸位试试能不能做到。

但是感觉效率很差,大家有没有好的方法啊?那哥们要离职了,根本不考虑太多,拿起我的方案就用...

利用sql的OVER()PARTITION 找到最相近的数值的更多相关文章

  1. ASP.net(C#)利用SQL Server实现注册和登陆功能

    说说我现在吧,楼主现在从事的事IT行业,主攻DotNet技术:当然这次上博客园我也是有备而来,所有再次奉献鄙人拙作,以飨诸位,望诸位不吝赐教. 世界上大多数的工作都是熟练性的工种,编程也不例外,做久了 ...

  2. 利用SQL Profiler 追踪数据库操作

    SQL Server 事件探查器 是一个界面,用于创建和管理跟踪并分析和重播跟踪结果. 这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播一系列特定的步骤. SQL S ...

  3. 利用SQL Server Management Studio(SSMS)复制数据库

    利用SQL Server Management Studio(SSMS)复制数据库 标签(空格分隔): SQLServer 前言 今天由于客户购买的软件版本确认了,而之前进行开发的本地数据库版本较低, ...

  4. 四、利用SQL Server 2008 R2创建自动备份计划

    (转) 本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQ ...

  5. 利用SQL Server 2008 R2创建自动备份计划

    本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQL Se ...

  6. 利用SQl对数据库实行数据拆分与组合

    利用SQl对数据库实行数据拆分与组合实现提供以下几种方案: 方法一: WITH CTE AS (SELECT A.Id,A.[Uid],UserName FROM (SELECT A.[id], RE ...

  7. 利用SQL注入漏洞登录后台的实现方法

    利用SQL注入漏洞登录后台的实现方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-01-12我要评论 工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读 ...

  8. 利用sql批量删除表,存储过程

    利用sql批量删除表,存储过程. 最近用godaddy的空间,由于系统里面的表多,一个个的删除很麻烦,就网上搜集了一下解决方法. 给大家分享一下: 1.批量删除存储过程 declare @procNa ...

  9. 利用 SQL Monitor 查看语句运行状态步骤

    利用 SQL Monitor 查看语句运行状态步骤 1.确定语句被 SQL Monitor 监控 SQL> SELECT * FROM GV$SQL_MONITOR WHERE sql_id=' ...

随机推荐

  1. io输出流变为输入流

    java 输出流转化为输入流 new ByteArrayInputStream(byteArrayOutputStream.toByteArray());

  2. 七个不可错过的React组件库与开发框架

    React是如今最火爆的前端技术,而React最棒的一个特点就是有大量功能丰富的组件库和开发框架可用.从按钮到卷轴到工具条,应有尽有,而且这些组件可以各行其是,也可以组装成复杂的UI,你也可以把UI分 ...

  3. eclipse egit(版本回退)

    在公司一年多了,用到的项目都是用svn代码托管,没有git 的用武之地,趁国庆假期稍微自学了一下,然后人比较懒,不愿用原生敲命令行的形式,就在eclipse上学学怎么用git,话说回来用了svn再来学 ...

  4. editplus设置自动换行方法 editplus自动换行设置步骤

    原文链接:https://www.jb51.net/softjc/165897.html 发布时间:2014-05-14 17:03:54   作者:佚名    我要评论 editplus自动换行设置 ...

  5. ucore-lab1-练习4report

    练习四:分析bootloader加载ELF格式的OS的过程  1.bootloader如何读取硬盘扇区? (1)在练习3中实现了bootloader让CPU进入保护模式,下一步的工作就是从硬盘上加载并 ...

  6. 206. Reverse Linked List (List)

    Reverse a singly linked list. /** * Definition for singly-linked list. * struct ListNode { * int val ...

  7. YYKit @autoreleasepool 使用,优化内存

    写在前面 最近再看YY大神的YYKit工具,发现在代码中经常使用@autoreleasepool,特别是在与for循环搭配使用的时候.刚开始很不能理解. 先有个概念: 自己创建的对象:使用 alloc ...

  8. TZOJ 1594 Optimal Milking(二分+最大流)

    描述 FJ has moved his K (1 <= K <= 30) milking machines out into the cow pastures among the C (1 ...

  9. TZOJ 2018 SPF(连通图割点和分成的连通块)

    描述 Consider the two networks shown below. Assuming that data moves around these networks only betwee ...

  10. eclipse及tomcat设置编码

    新装的eclipse新导入项目会乱码,解决办法: 右击项目选properties,找到resources选择utf-8 改后乱码解决 乱码解决后可能还会有红叉,project clean即可 一劳永逸 ...