如何根据一个参数获得不同的值?

时间:2013-10-24 19:41:01

标签: teradata

我正在使用teradata来吸引一些员工

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

我需要select仅基于eventid参数的不同值,所以我想将distinct应用于eventid,并让personid成为任何类型的第一个值

我该怎么做?

如果我这样做

select distinct eventid, personid ............ ......... 这将根据两个参数拉出不同

1 个答案:

答案 0 :(得分: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;