需要一些SQL帮助,可能使用组和计数,或者它需要的任何东西 . 只是找不到方法 . 非常感谢 .
简单的表格:
ColA ColB
1 A
1 A
2 B
3 B
4 C
4 C
5 C
返回所有独特的ColA和ColB对,对于相同的ColB,有多个不同的ColA值 .
对于上面给出的数据,它应该返回
ColA ColB
2 B
3 B
4 C
5 C
4 回答
您可以使用
APPLY
检查ColB
是否有多于1个取消ColA
值的值:在线演示
首先使用Group By Clause和Row_Number()我将得到一个数字序列结果集 . 通过这种方式,我可以识别ColumnA和ColumnB的唯一对,其中对于相同的ColumnB,有多个不同的ColumnA值 .
输出:
现在,您可以将此结果放入表表达式 - CTE或派生表(我选择CTE)并仅过滤掉RowNum大于或等于2的ColumnB值 . 因此,最终查询将为 -
最终输出:
希望这有用:)
我建议使用
min()
和max()
作为窗口函数的简单方法:编辑:对第一个答案道歉,我没有注意到
ColA
的规定在ColB
上有多个不同的值 . 这是我更新的答案: