0

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

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

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

说白了...

全选 where 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,更新标题)

4

1 回答 1

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

于 2013-09-30T14:46:22.797 回答