2016-08-19 176 views
-3

在Oracle数据库中,我有记录是这样的:SQL查询多记录

Column A  Column B 
--------------------- 
Test   R 
Test   W 
Test2   W 
Test3   K 
Test3   X 
Test4   Y 

只有这些记录应该是我的输出

Column A  Column B 
----------------------- 
Test   R 
Test2   w 
Test3   K 
Test4   Y 

我试图与查询关键词,比如:

select * 
from X.table 
where Column A = 'Test' and Column B = 'R'; 

如何实现多记录?

+3

背后是什么逻辑? – Jens

+0

在Oracle数据库中我们使用R进行测试,WI只想显示Test与R匹配但不是W的记录,上面的查询适用于单个记录,但我怎样才能实现多条记录 – Sandeep

+1

** Typo alert **:它是一个**列**(不是“coloumn”) –

回答

0

这将返回预期的结果:

select columnA, min(columnB) 
from X.table 
group by columnA 

对于每个columnA值,返回最低columnB值。

+0

它与最低值 – Sandeep

+0

@Sandeep无关,与您的样本数据和预期结果一致。也许你可以做一些示例数据更改,以更好地描述问题? – jarlh

0

这可以通过分区来解决的,我认为(注:这是Oracle SQL):

select* 
from 
    (
    select x.* 
     , row_number() over (partition by column_a order by column_b) rn 
    from x 
) 
where rn =1;