我有一张这样的表:
Column1 Column2
---------------
1 1
1 2
1 3
1 4
2 1
2 1
2 1
2 1
在column1
一个中有2个不同的ID,在column2
中,column1
的每个ID都有不同的值。
如何从column1
获取来自column2
的所有ID都不相同的ID?所以在这种情况下输出应该是1 - 因为它们在column2中具有所有不同的值,其中column1中的id在column2中具有所有1'
答案 0 :(得分:2)
只需使用group by
和having
:
select column1
from table t
group by column1
having min(column2) <> max(column2);
注意:您也可以使用count(distinct)
,但这比min()
和max()
有更多的开销。
如果第二列可能是NULL
,则可以使用类似的逻辑。这并没有出现在样本数据中,因此除非OP明确表示这是可能的,否则它似乎不值得将其包括在逻辑中。
答案 1 :(得分:1)
试试这样:
select Column1
from yourTable
group by Column1
having count(DISTINCT column2) > 1;
答案 2 :(得分:0)
我认为这样的事情应该可以胜任:
SELECT t.column1 FROM table t
GROUP BY t.column1
HAVING COUNT(DISTINCT t.column2) > 1
答案 3 :(得分:0)
此方法将处理null为column2中可接受值的情况。
select column1
from
(
select distinct column1, column2
from yourTable
) t
group by column1
having count(*) > 1