我正在使用teradata来吸引一些员工
select eventid, personid
.........
.......
我需要select
仅基于eventid参数的不同值,所以我想将distinct
应用于eventid,并让personid成为任何类型的第一个值
我该怎么做?
如果我这样做
select distinct eventid, personid
............
.........
这将根据两个参数拉出不同
答案 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;