一尘不染

SQL查询非重复记录

sql

我正在尝试建立一个查询,该查询将返回表中的所有非重复(唯一)记录。该查询将需要使用多个字段来确定记录是否重复。

例如,如果一个表具有以下字段;PKID,ClientID,名称,AcctNo,OrderDate,Charge,我想使用AcctNo,OrderDate和Charge字段来查找唯一记录。

桌子

PKID-----ClientID-----Name-----AcctNo-----OrderDate-----Charge
1        JX100        John     12345      9/9/2010      $100.00
2        JX220        Mark     55567      9/9/2010       $23.00
3        JX690        Matt     89899      9/9/2010      $218.00
4        JX100        John     12345      9/9/2010      $100.00

查询的结果将需要是:

PKID-----ClientID-----Name-----AcctNo-----OrderDate-----Charge
2        JX220        Mark     55567      9/9/2010       $23.00
3        JX690        Matt     89899      9/9/2010      $218.00

我尝试使用SELECT DISTINCT,但这不起作用,因为它在结果中保留了重复记录之一。我也尝试过使用HAVING COUNT =1,但这会返回所有记录。

谢谢您的帮助。


阅读 321

收藏
2021-03-17

共1个答案

一尘不染

HAVING COUNT(*) = 1如果您仅在GROUPBY用于查找唯一记录的字段中包含这些字段,则它将起作用。(即不是PKID,但是您可以使用MAXMIN返回该值,因为结果集中每个组只有一条记录。)

2021-03-17