2013-10-24 55 views
0

我使用Teradata的拉一些工作人員如何根據一個參數獲取不同的值?

select eventid, personid ......... .......

我需要select不同的值只根據事件ID參數,所以我想申請distinct到EVENTID,讓PERSONID是任何類型的第一值

我該怎麼做?

,如果我做

select distinct eventid, personid ............ ......... 這將基於這兩個參數,將不同

回答

10

如果您有任何關於personid返回值的一些偏好(最低/最高),你應該使用ROW_NUMBER

select * from tab 
qualify row_number() 
     over (partition by eventid 
       order by persionid) = 1; 

否則這會避免排序,因此應該使用較少的資源:

select * from tab 
qualify sum(1) 
     over (partition by eventid 
       rows unbounded preceding) = 1; 
相關問題