SQL Server:仅返回每个多个事件的非唯一返回w /某些重复的记录

时间:2013-09-30 14:19:14

标签: sql-server

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

1)col 1和3需要多个重复记录(ex col 1 = A和col 3 = X三次)

2)只有当col 2在多个事件中有多个值时才返回所述记录(例如col 1和col 3,A和X的col 2 = 1和2)

简单地说...

全选 col 1,col 3> 1

但是col 2不能重复 除非已经存在不同的值,否则只要它们等于其中一个不同的值

,就返回其余的值

我的问题是我无法摆脱下面例子中col 1 = 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   

(编辑:切换到col,更新标题)

1 个答案:

答案 0 :(得分:0)

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

看这里http://sqlfiddle.com/#!3/2ba37/4/0