如何检索colA
具有多个唯一colB
值的行?
例如:
+------+------+
| colA | colB |
+------+------+
| 1 | A |
| 1 | B |
| 2 | C |
| 3 | D |
| 3 | D |
+------+------+
鉴于上述数据,我只想检索colA = 1
的记录,因为这是colB
中唯一具有多个唯一值的列。
我无法理解它。我有一种感觉,我错过了一些非常明显的东西。
这可能吗?
答案 0 :(得分:2)
您可以将exists
用作
select * from table_name t1
where exists(
select 1 from table_name t2
where t1.colA = t2.colA
and t1.colB <> t2.colB
)
如果您刚刚找到colA,那么您可以使用
select colA from table_name
group by colA
having count(distinct colB) > 1
答案 1 :(得分:0)
您可以使用COUNT(DISTINCT ..)
为每列的不同列b值计算一个值,然后使用HAVING
子句来获取所需内容:
SELECT colA
FROM myTable
GROUP BY colA
HAVING COUNT(DISTINCT colB) > 1;
以下是SQL Fiddle示例。