在 Amazon Redshift 中是否可以对两列设置条件?

In Amazon Redshift is it possible to have a condition on two columns?

我有以下table,如下图。我想为他们的 Group[= 提取具有最小 Row_Flag 的行27=],其中 Record_Flag 等于 0。如果 Record_Flag不等于0,逻辑应该提取下一个最小的Row_Flag 其中 Record_Flag 等于 0。这些行以黄色突出显示。我不确定是否可以在 Redshift 的 SQL 编辑器中执行这种“双重条件”逻辑。是否可以在 Redshift 中计算这种逻辑?如果是这样,我该怎么做?

您可以使用 row_number()。我将您的问题解释为您想要 record_flag = 0 时的最小 row_flagrecord_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;