我有下表,需要MIN
PK
CLT_ID PK_ID USER_ID
1 101 999
1 102 900
预期产出:
CLT_ID PK_ID USER_ID MIN_USER_ID
1 101 999 999
1 102 989 999
我可以简单地创建一个排名函数然后过滤我的排名,但还有另一种方法吗?即Window Functions
答案 0 :(得分:3)
您可以使用FIRST_VALUE
窗口功能。
select t.*,first_value(user_id) over(partition by clt_id order by pk_id) as min_user_id
from tbl t
答案 1 :(得分:0)
试试这个:
SELECT T.*
, first_value(USER_ID) OVER(PARTITION BY CLT_ID ORDER BY PK_ID) AS MIN_USER_ID
FROM table T