Sql server SQL Server:仅返回记录,其中每多个事件返回非唯一的记录,其中包含一些重复项

Sql server SQL Server:仅返回记录,其中每多个事件返回非唯一的记录,其中包含一些重复项,sql-server,Sql Server,我希望在SQL Server中进行查询。 需要满足的标准包括: 1) 第1列和第3列上需要有多个重复记录(例如第1列=A和第3列=X三次) 2) 仅当列2在多个事件上有多个值时才返回所述记录(列1和列3上的ex,A和X的列2=1和2) 简单地说 全选 其中第1列,第3列>1 但是第2列不能重复 除非已经存在不同的值,否则返回剩余的值,只要它们等于一个不同的值 我的问题是,我无法摆脱下面示例中col1=E的情况 例如: col 1 | col 2 | col 3 A | 1 | Y

我希望在SQL Server中进行查询。
需要满足的标准包括:

1) 第1列和第3列上需要有多个重复记录(例如第1列=A和第3列=X三次)

2) 仅当列2在多个事件上有多个值时才返回所述记录(列1和列3上的ex,A和X的列2=1和2)

简单地说

全选 其中第1列,第3列>1

但是第2列不能重复 除非已经存在不同的值,否则返回剩余的值,只要它们等于一个不同的值

我的问题是,我无法摆脱下面示例中col1=E的情况

例如:

col 1 | col 2 | col 3
A     | 1     | Y
A     | 1     | X
A     | 2     | X
A     | 2     | X
B     | 1     | X
B     | 1     | Y
C     | 1     | X
C     | 2     | Y
D     | 1     | Y
D     | 2     | Y
E     | 1     | X
E     | 1     | X
F     | 1     | X
预期结果:

col 1 | col 2 | col 3
A     | 1     | X
A     | 2     | X
A     | 2     | X
D     | 1     | Y
D     | 2     | Y   
(编辑:将行切换为列,更新标题)


看这里

我想你可能需要在你的问题中以行换列——这有点让人困惑。
SELECT test.COL1,test.COL2,test.COL3 FROM test,
(   SELECT COL1,COL3 FROM test 
    GROUP BY COL1,COL3 
    HAVING COUNT (DISTINCT COL2)>=2
) table2
WHERE test.COL1=table2.COL1 AND test.COL3=table2.COL3