-1
給定一個包含2列a,b的表。選擇列中具有不同值的行,給定另一列
我想選擇對於給定的a行,我可以有不同的b值。
在這個例子中,我想第2行
a | b
-----
1 | 1
1 | 2
2 | 1
2 | 1
3 | 1
給定一個包含2列a,b的表。選擇列中具有不同值的行,給定另一列
我想選擇對於給定的a行,我可以有不同的b值。
在這個例子中,我想第2行
a | b
-----
1 | 1
1 | 2
2 | 1
2 | 1
3 | 1
試試這個:
SELECT t1.*
FROM mytable AS t1
JOIN (
SELECT a
FROM mytable
GROUP BY a
HAVING COUNT(DISTINCT b) > 1
) AS t2 ON t1.a = t2.a
你沒有提到你的DBMS,但是在Oracle中,你可以這樣做:
select a,b
from (
select a,b,
count(distinct b) over (partition by a) as num_b
from the_table
) t
where num_b > 1
不幸的是,對於窗口函數,Postgres或SQL Server不支持distinct
。
您正在使用哪些DBMS? –