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

Bor*_*iev 0 teradata

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

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

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

我怎样才能做到这一点?

如果我做

select distinct eventid, personid ............ ......... 这将根据两个参数进行区分

dno*_*eth 11

如果您对personid(最低/最高)的返回值有一些偏好,您应该使用ROW_NUMBER:

select * from tab 
qualify row_number() 
        over (partition by eventid 
              order by persionid) = 1;
Run Code Online (Sandbox Code Playgroud)

否则这会避免排序,因此应该使用更少的资源:

select * from tab 
qualify sum(1) 
        over (partition by eventid 
              rows unbounded preceding) = 1;
Run Code Online (Sandbox Code Playgroud)