查找没有“重复项”的记录

Ses*_*ame 2 sql sql-server sql-server-2008

我正在尝试在表中查找基于某些条件没有“重复”的记录。我将重复项放在引号中,因为这些记录不是文字重复项,如我的示例数据所示。

MyTable
Column1-----Column2-----Column3
ABC---------123---------A
ABC---------123---------Z
BCD---------234---------Z
CDE---------345---------A
CDE---------345---------Z
DEF---------456---------A
DEF---------456---------Z
EFG---------567---------Z
FGH---------678---------A
Run Code Online (Sandbox Code Playgroud)

只需看一眼这些数据,您就可以清楚地看到Column1中具有BCD,EFG和FGH的记录没有任何其他重复项。但是,除Column3数据外,所有其他记录看起来相似。

我可以编写查询来查找这三个记录,但是我只关心Column3中具有“ Z”的记录。这将导致查询仅显示BCD和EFG,而不显示FGH。

因此,我想要一个查询,该查询将查找记录,这些记录查找没有重复的记录(基于Column1和Column2),并且在Column3中具有“ Z”。

任何帮助是极大的赞赏!

Gor*_*off 5

您可以使用聚合和having子句来做到这一点:

select column1, column2, max(column3)
from mytable
group by column1, column2
having count(*) = 1 and max(column3) = 'Z';
Run Code Online (Sandbox Code Playgroud)