如何选择列中单元格的唯一值

时间:2019-04-19 09:18:14

标签: sql

当我执行“ SELECT * FROM table”时,我得到如下结果:

1 UNID1 data1
2 UNDI2 data2
3 UNID3 data2
4 UNID4 data3
5 UNID5 data3
6 UNID6 data4

如您所见,column2中有dup记录。那么我如何才能得到不重复的数据的结果:

1 UNID1 data1
2 UNID6 data4

我不相信SELECT命令的DISTINCT选项是解决方案,因为它只返回不同的值而不是唯一值

3 个答案:

答案 0 :(得分:3)

使用EXISTS子句的一个选项:

SELECT col1, col2
FROM yourTable t1
WHERE NOT EXISTS (SELECT 1 FROM yourTable t2
                  WHERE t2.col1 <> t1.col1 AND t2.col2 = t1.col2);

enter image description here

Demo

简而言之,该查询说要获取每条记录,其中不存在另一条记录,该记录具有不同的col1 ID值和相同 {{ 1}}值。

答案 1 :(得分:1)

您可以进行聚合:

select max(col1) as col1, col2
from table t
group by col2
having count(distinct col1) = 1;

答案 2 :(得分:0)

这将起作用:

select * from (select a."col1",a."col2",a."col3",(select count(b."col3") from Table1 b 
where b."col3" like a."col3") count1
from Table1 a) where count1<2; 

检查http://sqlfiddle.com/#!4/881ff/10