问题描述
我需要对函数进行分组,并且只返回对于我选择的每个变量具有最大值的行。 在这种情况下,变量是user_id和task。
我的输入如下表所示:
@H_502_5@user_id task mx 123456 expecd 4.85 789101 Packing 3.17 123456 Packing 1.50 789101 receiv 0.08
我在下面应用查询。
@H_502_5@select user_id,task,max(time_sum) as mx from process group by user_id,task) with data on commit preserve rows;
但是获取下表的目标是行不通的。
@H_502_5@user_id task mx 123456 expecd 4.85 789101 Packing 3.17
您能指导我寻求解决方案吗?
解决方法
您希望每个mx
的行user_id
最大。
在Teradata中,您可以使用row_number()
和qualify
解决这个最大的每组问题。
select t.*
from mytable t
qualify row_number() over(partition by user_id order by mx desc) = 1