![](/img/trans.png)
[英]How to compare the column values of the max and min dates of a group of rows in Oracle?
[英]How to delete the rows with the max of column values in Oracle
我有2代表我的源代码管理数据库- PRJ
和PRJHIST
,两者具有相同的列和约束。
例如。 PRJ
和PRJHIST
具有以下行
PRJ TABLE
PRJ_NAME PRJ_TYPE PRJ_VERSION PRJ_AUTHOR PRJ_LANG
PRJ001 SCRIPT 3 MARK PERL
PRJ002 SCRIPT 2 JACK KSH
PRJ003 BINARY 4 JADE C++
PRJHIST TABLE
PRJ_NAME PRJ_TYPE PRJ_VERSION PRJ_AUTHOR PRJ_LANG
PRJ001 SCRIPT 1 MARK PERL
PRJ001 SCRIPT 2 MARK PERL
PRJ001 SCRIPT 3 MARK PERL
PRJ002 SCRIPT 1 JACK KSH
PRJ002 SCRIPT 2 JACK KSH
PRJ003 BINARY 1 JADE C++
PRJ003 BINARY 2 JADE C++
PRJ003 BINARY 3 JADE C++
PRJ003 BINARY 4 JADE C++
PRJ
表始终具有PRJHIST
表中具有最高版本的行
如何删除PRJHIST
表中具有max(PRJ_VERSION)
所有行?
即我需要从PRJHIST
表中删除以下行
PRJ001 SCRIPT 3 MARK PERL
PRJ002 SCRIPT 2 JACK KSH
PRJ003 BINARY 4 JADE C++
DELETE FROM PRJHIST a
WHERE EXISTS (SELECT 'X'
FROM PRJ b
WHERE a.PRJ_NAME = b.PRJ_NAME
AND a.PRJ_VERSION = b.PRJ_VERSION);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.