如何解决具有Max条件的Greoupby条件SQL Teradata
我需要对函数进行分组,并且只返回对于我选择的每个变量具有最大值的行。 在这种情况下,变量是user_id和task。
我的输入如下表所示:
user_id task mx
123456 expecd 4.85
789101 Packing 3.17
123456 Packing 1.50
789101 receiv 0.08
我在下面应用查询。
select user_id,task,max(time_sum) as mx
from process
group by user_id,task) with data on commit preserve rows;
但是获取下表的目标是行不通的。
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。