Sql 如何在Oracle中删除列值最大的行

Sql 如何在Oracle中删除列值最大的行,sql,oracle,Sql,Oracle,我的源代码管理数据库有两个表-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

我的源代码管理数据库有两个表-
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\u版本)
的所有行

i、 e我需要从
PRJHIST
表中删除以下行

PRJ001     SCRIPT   3           MARK       PERL  
PRJ002     SCRIPT   2           JACK       KSH  
PRJ003     BINARY   4           JADE       C++  

谢谢你。我会试试这个,明天回复。EXIST条款应该有助于我的事业。
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);