我正在尝试根据特定条件在表中查找没有“重复项”的记录。我将重复项放在引号中,因为这些记录不是字面上的重复项,正如我的示例数据将显示的那样。
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
单看这个数据,可以清楚的看到,Column1中有BCD、EFG、FGH的记录,没有任何额外的重复;但是,除了 Column3 数据外,所有其他记录看起来都相似。
我可以编写查询来查找这三个记录,但我只关心 Column3 中具有“Z”的记录。这将导致查询仅显示 BCD 和 EFG,而不显示 FGH。
所以,我想要一个查询来查找没有重复项(基于 Column1 和 Column2)并且在 Column3 中有“Z”的记录。
非常感谢任何帮助!
最佳答案
您可以使用聚合和 having
子句来做到这一点:
select column1, column2, max(column3)
from mytable
group by column1, column2
having count(*) = 1 and max(column3) = 'Z';
关于sql - 查找没有 "duplicates"的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458364/