我有一个简单的问题:如何在SQL(准确地说是Oracle)中使用HAVING COUNT(DISTINCT)来仅返回其中有2列具有相同记录但1列具有不同记录的行。
示例
CA_ID BA_ID SA_ID
---- ----- --------
CA1 BA1 SA1
CA1 BA2 SA1
CA1 BA2 SA2
CA1 BA3 SA1
CA2 BA4 SA3
CA2 BA4 SA4
CA2 BA5 SA4
CA3 BA6 SA6
在该示例中,我想创建一个显示1个相同的CA_ID和SA_ID,但具有不同的BA_ID的查询。
CA_ID BA_ID SA_ID
---- ----- --------
CA1 BA1 SA1
CA1 BA2 SA1
CA1 BA3 SA1
CA2 BA4 SA4
CA2 BA5 SA4
2条答案
按热度按时间mwg9r5ms1#
CA_ID|BA_ID|SA_ID
-|-|
CA1|BA1|SA1
CA1|BA2|SA1
CA1|BA3|SA1
CA2|BA4|SA4
CA2|BA5|SA4
Fiddle
fcy6dtqo2#
我们可以尝试使用聚合方法来查找匹配的
CA_ID
和SA_ID
值: