在 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_flag
。 record_flag
只取值 0
和 1
.
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;
我有以下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_flag
。 record_flag
只取值 0
和 1
.
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;