如何在多列上使用distinct

时间:2016-08-06 11:39:19

标签: database oracle11g distinct analytic-functions

我有6个字段

f1,f2,f3,f4,f5,f6

只有字段4到6只有变化我希望结果为基于字段1的单行

例如

name ,  age,    policy_no,  proposer_code,      entry_date ,        status
-----------------------------------------------------------------------------
aaa     18        100002       101              20-06-2016              A
aaa     18        100002       101              21-06-2016              B  
aaa     18        100002       101              22-06-2016              c   
aaa     18        100002       101              24-06-2016              H
aaa     18        100002       101              26-06-2016              p

我只想根据提议者代码单独使用最后一行,因为这是最近的输入日期。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您只想使用.error{ display: none; color: #FF2121; font-family: arial; font-size: 14px; font-weight: bold; } h1{ font-style: normal; font-weight: bold; font-size: 20px; font-family: Lucida Sans Unicode; color: #0A032F; text-align: center; text-decoration: underline; } h2{ font-weight: bold; font-size: 18px; font-family: arial; color: #33257B; text-align: center; text-decoration: underline; } p{ font-family: arial; font-size: 14px; } fieldset{ margin-left: 400px; margin-right: 400px; margin-top: 40px; text-align: center; border: 1px solid #000000; background: linear-gradient(#ffffff, #f2f2f2); } label{ font-family: arial; font-size: 14px; display: inline; } .formfield{ margin-left: 25px; display: inline; } #title{ margin-left: 25px; display: inline; } 这样:

row_number()

答案 1 :(得分:0)

在oracle中,您可以使用以下SQL查询来实现结果集。

select name ,  
       age,    
       policy_no,  
       proposer_code,      
       entry_date ,        
       status
 from (
select name ,  
       age,    
       policy_no,  
       proposer_code,      
       entry_date ,        
       status,
       rank()over(partition by name ,age,policy_no, proposer_code order by entry_date  desc) rnk
from test
group by name ,  age,    policy_no,  proposer_code ,entry_date , status ) a
where a.rnk = 1;