2012-04-03 96 views
4

我有两列(column1,column2)在我的oracle数据库中表名为demo。我想选择具有不同column2的相同column1。来自oracle数据库的sql查询

SQL> select * from demo; 

column1 | column2 
--------|-------- 
A  | 10   
A  | 20 
A  | 30 
A  | 30 

我想count(*)以下的输出:

column1 | column2 
--------|-------- 
A  | 10   
A  | 20 

我怎么能这样做呢?任何帮助深表感谢

+2

你的意思是,如果在'值column1'在'column2'正确的值不同?那么我认为你的'select *'中的第三行应该是A以外的东西? – jb10210 2012-04-03 11:07:57

+0

您可以使用COUNT运算符和GROUP BY和HAVING构造 – 2012-04-03 11:11:27

+0

@ jb10210执行此操作,您靠近右侧,但“A means”不是?我的数据库中有上述记录模式 – saroj 2012-04-03 11:14:03

回答

2

尝试:

select column1, column2 
from myTable 
group by column1, column2 
having count(*) = 1 
+0

为什么这个查询会导致所需的输出? – 2012-04-03 11:28:06

+0

谢谢马克,但输出即将到来'A 30' – saroj 2012-04-03 11:28:44

+0

@saroj:纠正的查询。 (需要咖啡...) – 2012-04-03 11:29:49