如何使用partition by删除表中的重复记录? [重复]

问题描述 投票:0回答:3

我有一个名为“versions”的表,其中包含列control_no、revision_id、revision_dt、version_no、version_dt、created_by、change_type、summary、new_owner。

每个control_no都有revision_id,范围从1到特定数字。我想从这个表中选择 对于具有 max(REVISION_ID) 的 CONTROL_NO,VERSION_NO、CHANGE_TYPE、SUMMARY、CREATED_BY。

如何做到这一点?

sql oracle join
3个回答
0
投票

使用以下查询

select VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_BY from VERSIONS where REVISION_ID in (SELECT A.REVISION_LIST FROM (select max(REVISION_ID) AS REVISION_LIST, CONTROL_NO AS CONT_NO from VERSIONS GROUP BY CONTROL_NO)A);

0
投票

这会起作用:

 select VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_BY,max(REVISION_ID),control_no 
  from versions group by control_no;

0
投票

通过以下代码即可获得

SELECT MAX(Version_id) AS Version_id, VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_By, CONTROL_NO 
from table
GROUP BY VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_By, CONTROL_NO 
© www.soinside.com 2019 - 2024. All rights reserved.