利用sql的OVER()PARTITION 找到最相近的数值
2024-10-20 01:44:56
前几天同事问我一个问题,能不能用sql搞定这个问题:
我这里有一个张表table1中有time1,value1,有表table2有字段time2,value2。
现在要把table2中的value2更新到table1的value1中,要求time2距离time1最近。
一下子就想到之前学到的over partititon,但是只是学的时候操作了几个例子,一下子也没写上来。
后来找到一个教程http://blog.csdn.net/ayou2008/article/details/7179001
- select e.ename,
- e.job,
- e.sal,
- e.deptno,
- lead(e.sal, 1, 0) over(partition by e.deptno order by e.sal) lead_sal,
- lag(e.sal, 1, 0) over(partition by e.deptno order by e.sal) lag_sal,
- nvl(lead(e.sal) over(partition by e.deptno order by e.sal) - e.sal,
- 0) diff_lead_sal,
- nvl(e.sal - lag(e.sal) over(partition by e.deptno order by e.sal), 0) diff_lag_sal
- from scott.emp e;
稍微修改一下即可,diff_lead_sal, diff_lag_sal 和sal做差 两个差中找比较小的一个
请诸位试试能不能做到。
但是感觉效率很差,大家有没有好的方法啊?那哥们要离职了,根本不考虑太多,拿起我的方案就用...
最新文章
- jQuery的DOM操作实例(1)——选项卡&;&;Tab切换
- logging 模块
- spring定时器,当遇见半小时的情况时
- Android中处理OnClick和OnTouch方法冲突的解决方案
- SQL 两种表复制语句
- [LeetCode] Subsets (bfs的vector实现)
- 线程池原理及创建(C++实现)
- android 点击edittext弹出软键盘,否则不弹
- 15.导入网表及status介绍[原创]
- BZOJ 1589 采集糖果
- 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动
- MongoDB(四)——管理架构
- float与position
- Openlayer 3 的点击弹出框
- div+css与table布局
- Android系统--输入系统(十六)APP跟输入系统建立联系_InputChannel和Connection
- 优化表单数据的JS校验
- crt证书iis 中引用 程序目录提示 System.UnauthorizedAccessException:拒绝访问
- 使用日期操作类(Calendar)获得几秒、几分钟、几小时之前的时间
- SQLPrompt 安装后sql上看不到菜单