sql查询以查找非映射列值

lau*_*rie 0 sql plsql

很难用文字表达,所以假设这个例子表:

| id | col1 | col2 | 
--------------------
| 1  |  aa  |  12  |
| 2  |  aa  |  12  |
| 3  |  bb  |  13  |
| 4  |  cc  |  13  |

我想要一个选择行3和4甚至只是值13的查询

所以像检查这个假设:"col2的所有值都相同,应该映射col1的一个值"

我一直在检查,通过在单独的查询和比较中对每列进行"分组依据"和行计数,但是能够挑出有问题的行会很好

查询或pl/sql过程没问题

Ton*_*ews 5

得到"13":

select col2
from mytable
group by col2 having count(distinct col1) > 1;
Run Code Online (Sandbox Code Playgroud)

获取行:

select * from mytable where col2 in
( select col2
  from mytable
  group by col2 having count(distinct col1) > 1
);
Run Code Online (Sandbox Code Playgroud)