Sql 选择“使用oracle中的2个字段删除重复条目”
我正在处理一个Oracle查询,返回一组记录。我的要求是消除重复记录。我有一个表,其中包含唯一的客户id、日期和消息id。我只需要为每个客户和每个消息id选择最新的结果 换句话说,我可能需要多个唯一的客户id行,但每个客户的每个消息id只需要一行 为清晰起见,请编辑: 除此之外,我还想向结果集中添加其他非唯一的数据字段,如customer_answer、channel…谢谢 前 应该回来Sql 选择“使用oracle中的2个字段删除重复条目”,sql,database,oracle,select,Sql,Database,Oracle,Select,我正在处理一个Oracle查询,返回一组记录。我的要求是消除重复记录。我有一个表,其中包含唯一的客户id、日期和消息id。我只需要为每个客户和每个消息id选择最新的结果 换句话说,我可能需要多个唯一的客户id行,但每个客户的每个消息id只需要一行 为清晰起见,请编辑: 除此之外,我还想向结果集中添加其他非唯一的数据字段,如customer_answer、channel…谢谢 前 应该回来 Joe msg1 8/9/2013 Joe msg2 9/10/20
Joe msg1 8/9/2013
Joe msg2 9/10/2013
Jim msg1 9/13/2013
提前感谢您的帮助 这可能有效:
SELECT DISTINCT unique_customer_id, message_id, MAX(date)
FROM TableName
GROUP BY unique_customer_id, message_id
这可能会奏效:
SELECT DISTINCT unique_customer_id, message_id, MAX(date)
FROM TableName
GROUP BY unique_customer_id, message_id
这对我最初的问题非常有效。我已经在上面添加了更多的细节…我想我已经解决了它的其余部分;)。如何在没有明确要求的情况下向该查询添加其他字段?即返回上述三个字段和其他三个非唯一字段…谢谢@flobbie1:Distinct只确保不会得到重复的行。只要不是每个字段都与另一行相同,就可以有3个相同的附加字段。但是,由于它是一个group by子句,您必须将行添加到group by中,或者将它们放在聚合函数中,如MAX()或SUM()。这对于我最初的问题非常有效。我已经在上面添加了更多的细节…我想我已经解决了它的其余部分;)。如何在没有明确要求的情况下向该查询添加其他字段?即返回上述三个字段和其他三个非唯一字段…谢谢@flobbie1:Distinct只确保不会得到重复的行。只要不是每个字段都与另一行相同,就可以有3个相同的附加字段。但是,由于它是一个group by子句,因此必须将行添加到group by,或者将它们放入聚合函数中,如MAX()或SUM()。