首页 > 解决方案 > 在 Amazon Redshift 中是否可以在两列上设置条件?

问题描述

我有下表,如下所示。我想为其Group提取具有最小Row_Flag的行,其中Record_Flag等于 0。如果Record_Flag不等于 0,则逻辑应提取 Record_Flag 等于 0 的下一个最小Row_Flag 这些行以黄色突出显示。我不确定是否可以在 Redshift 的 SQL 编辑器中执行这种“双重条件”逻辑。是否可以在 Redshift 中计算这种逻辑?如果是这样,我将如何去做?

桌子图片

标签: sqlamazon-web-servicesamazon-redshift

解决方案


您可以使用row_number(). 我将您的问题解释为您想要最小row_flagrecord_flag = 0. 这只record_flag需要值01

select t.*
from (select t.*,
             row_number() over (partition by group
                                order by record_flag, row_flag
                               ) as seqnum
      from t
     ) t
where seqnum = 1;

推荐阅读