难以用语言表达,所以假设这个示例表:
| id | col1 | col2 | -------------------- | 1 | aa | 12 | | 2 | aa | 12 | | 3 | bb | 13 | | 4 | cc | 13 |
我想要一个选择第3行和第3行的查询4或甚至只是值13
这就像检查这个假设:“col2的所有值都相同,应该映射col1的一个值”
我一直在检查,在单独的查询和比较中对每一列进行“分组依据”和行计数,但是能够挑出有问题的行会很好
查询或pl / sql程序没问题
答案 0 :(得分:5)
获得“13”:
select col2
from mytable
group by col2 having count(distinct col1) > 1;
获取行:
select * from mytable where col2 in
( select col2
from mytable
group by col2 having count(distinct col1) > 1
);
答案 1 :(得分:1)
如果你想要的是基于唯一col1的col2,那就是:
SELECT col2 FROM [table] GROUP BY col1 HAVING count(id) = 1;
如果您希望col2基于唯一的col1和col2值,则以下内容应该有效:
SELECT col2 FROM [table] GROUP BY col1, col2 HAVING count(id) = 1;