Dense_Rank和批量更新结合的奇怪问题,请高手帮忙

现在有这样的一个表结构, 里面有以下5个主要字段:

Table A(
buyer, --购买者 PK1
things, --商品 PK2
supplier, --供货商 PK3
rank, --评级
point --分数
)

一开始, buyer,things,supplier和point 都有数值了,
现在想对 供货商进行评级, 单位是buyer和things

SELECT DENSE_RANK() OVER( PARTITION BY buyer, things ORDER BY point DESC) AS RANK
就可以很好的查询到我需要的RANK.

然后, 我想把查询到的RANK, 一次更新到这张Table里面去.

UPDATE A t1
SET rank =
(SELECT DENSE_RANK() OVER( PARTITION BY t2.buyer, t2.things ORDER BY t2.point DESC) AS RANK
FROM A t2
WHERE t1.buyer = t2.buyer
AND t1.things = t2.things
And t1.supplier = t2.supplier)

Table A 自己和自己JOIN一下
应该是正常更新的.

但是每条记录的rank字段都是1, 而不是查询出来的正确的RANK
这是为什么啊?
(注: 如果不是用DENSE_RANK, 而是直接SET rank = point是对的
说明UPDATE应该没问题, 是不是DENSE_RANK有什么内部机制,
导致这种UPDATE方法不能正常更新? )

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8453538/viewspace-968066/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8453538/viewspace-968066/

oracle update 结合更新相关推荐

  1. Oracle使用游标更新数据 Oracle游标之select for update和where current of 语句

    Oracle使用游标更新数据 2016年11月20日 13:15:49 hzwy23 阅读数:5313 友情推广 ###使用游标修改数据 ####定义一个游标,游标名称为 mycursor ##### ...

  2. Oracle数据库之oracle update set select from 关联更新

    本文主要向大家介绍了Oracle数据库之oracle update set select from 关联更新,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 工作中有个需求,现在 ...

  3. oracle update inner join,在Oracle上使用inner join更新语句

    该语法在Oracle中无效.你可以这样做: UPDATE table1 SET table1.value = (SELECT table2.CODE FROM table2 WHERE table1. ...

  4. oracle没有提交更新,oracle 中更新update不成功的原因

    oracle 中执行insert into 与delete 都正常,但是执行update 却没有反应. 原因: 是因为记录锁.这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在o ...

  5. oracle里update+where,Oracle 关联表更新 update ,where exists

    表A ID NAME AGE SEX BOOK 1 小丑1 12 男 数据结构 2 小丑2 22 女 人工智能 表B ID AGE SEX COMPUTER 1 00 applet 2 00 thin ...

  6. Oracle update 更新数据语法和写法

    使用update语句更新数据 ② 使用where子句指定需要更新的数据 ③ 在update语句中使用子查询 在update中使用子查询,使更新基于另一个表中的数据 更新中的数据完整性错误 如上描述如有 ...

  7. 深入解析:你听说过Oracle数据库的更新重启动吗?

    关注"数据和云",精彩不容错过 杨廷琨 云和恩墨高级咨询顾问, ITPUB Oracle 数据库管理版版主 ,人称 "杨长老",十数年如一日坚持进行 Oracl ...

  8. oracle联表更新语句

    oracle联表更新语句,此处为什么要写下来呢,因为信誓旦旦地用sql中的语句去更新oracle,发现不通用,但是查询可以.所以特意写下来,以免忘记或提醒需要的你们~~ 第一种: update lqp ...

  9. oracle有的表带$,Oracle Update

    在表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.象sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通 ...

最新文章

  1. python3 获取cpu 内存利用率
  2. 【PHP】 数组分页函数、根据字段排序并分页
  3. websocket实现多屏互动_“京东11.11直播超级夜”正式官宣,跨屏互动新玩法燃爆11.11...
  4. c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...
  5. 已饱和!未来程序员没活路了...
  6. Markdown--绘制流程图(flowchart)
  7. OSChina 周六乱弹 —— 运维狗的背锅日常
  8. Camera ISP与DSP的区别(二十五)
  9. ubuntu执行python脚本_在启动时运行python脚本作为守护进程(Ubuntu)
  10. 关于盒子背景图片布局
  11. 测试网站速度简单方法
  12. 各大文字转语音软件对比,哪个比较好呢?
  13. 我的世界java版钻石剑附魔_我的世界钻石剑怎么附魔 钻石剑附魔100级指令
  14. 【春招实习】贝壳金服电话一面
  15. Windows PC连接苹果LG UltraFine 4K显示器教程
  16. 【转自虎嗅】段永平在斯坦福与华人学生交流分享
  17. wps插入visio流程图
  18. R数据分析:潜增长模型LGM的做法和解释,及其与混合模型对比
  19. Python matplotlib plotly
  20. Java实现基于SQL server的图形化图书管理系统

热门文章

  1. python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述
  2. UVa 352 - The Seasonal War ( DFS求连通块 )
  3. Spring Boot入门三:创建Spring Boot项目;(包括【Spring 官网start.spring.io】方式,【IDEA集成的Spring Initializr】方式)
  4. android双模蓝牙,Android和双模蓝牙设备:与BR / EDR(经典)配对时未找到自定义BLE服务...
  5. linux ping 微秒,time.Duration类型的微秒值转换为毫秒
  6. i3-1115G4 怎么样 相当于什么水平
  7. 使用ARM-LPC3131上的nandflash实现U盘模式心得(一)
  8. 芝麻开门c语言答案,《芝麻开门》题库大曝光 不服来测!
  9. 深度学习-Non-local Neural Networks非局部神经网络
  10. 联邦学习中的non-iid总结