要求必须全部重复的数据sql--想了半天才写出来的

CREATE TABLE [dbo].[ABC](
    [AA] [nvarchar](500) NULL,
    [BB] [nvarchar](500) NULL,
    [CC] [nvarchar](500) NULL,
    [DD] [nvarchar](500) NULL
) ON [PRIMARY]

GO

--DELETE FROM [dbo].[ABC]

INSERT INTO ABC values('1','1','1','1')
INSERT INTO ABC values('1','1','2','1')
INSERT INTO ABC values('1','1','2','1')
INSERT INTO ABC values('1','1','2','1')
INSERT INTO ABC values('1','1','3','1')
--------------------------------------------
INSERT INTO ABC values('2','2','4','2')
INSERT INTO ABC values('2','2','4','2')
INSERT INTO ABC values('2','2','4','2')

需求是这样的,上图红色部分中的数据是我们需要的,该怎么取出这部分的数据呢?下面是我个人的写法,仅以参考:

SELECT d.* from (
SELECT AA,BB,DD from (
select * from (
select AA,BB,CC,DD from ABC
group by AA,BB,CC,DD) a
) b group by AA,BB,DD having(COUNT(AA)=1 AND COUNT(BB)=1 AND COUNT(DD)=1)
) c inner join ABC d on c.AA=d.AA and c.BB=d.BB and c.DD=d.DD

最终结果:

原文地址:https://www.cnblogs.com/linxianfeng/p/7163670.html