首页 > 解决方案 > 有没有办法对记录进行排名?

问题描述

我正在尝试跨列进行排名(?),其中“收藏夹”列基于指定列中的最大值。

当前数据集如何:

用户 上衣买了 裤子买了
安娜 50 12
乔恩 12 50

&想要做的是:

用户 上衣买了 裤子买了 最喜欢的项目
安娜 50 12 最高额
乔恩 12 50 裤子

谢谢!

标签: sqlamazon-redshiftrank

解决方案


您可以使用case表达式:

select t.*,
       (case greatest(tops_bought, pants_bought)
            when tops_bought then 'tops'
            when pans_bought then 'pants'
        end) as favorite_item
from t;

推荐阅读