0

我正在使用 teradata 拉一些员工

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

select只需要基于 eventid 参数来区分值,所以我想应用于distincteventid,并让 personid 成为任何类型的第一个值

我怎样才能做到这一点?

如果我做

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

4

1 回答 1

11

如果您对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;
于 2013-10-24T19:52:10.530 回答