sql - 在 Amazon Redshift 中是否可以在两列上设置条件?
问题描述
我有下表,如下所示。我想为其Group提取具有最小Row_Flag的行,其中Record_Flag等于 0。如果Record_Flag不等于 0,则逻辑应提取 Record_Flag 等于 0 的下一个最小Row_Flag 。这些行以黄色突出显示。我不确定是否可以在 Redshift 的 SQL 编辑器中执行这种“双重条件”逻辑。是否可以在 Redshift 中计算这种逻辑?如果是这样,我将如何去做?
解决方案
您可以使用row_number()
. 我将您的问题解释为您想要最小row_flag
的record_flag = 0
. 这只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;
推荐阅读
- python - numpy.random.normal() 函数的最大和最小间隔是多少?
- c# - 需要帮助以在两者之间提取文本
23454
- python - 两只兔子见面
- mysql - MySQL INNER JOIN - 如何添加额外的 IF 语句?
- bootstrap-4 - Bootstrap 4.1 表单验证类在 Angular 7 中不起作用
- digital-ocean - 为什么 gitlab runner 不能在 3Gb Digital Ocean 服务器上运行作业?
- phpmyadmin - sql 导出未显示在 phpmyadmin 版本 4.8.4 中
- css - 如何在 JavaFX 图表中动态更改符号/点大小?
- c# - 如果 Mysql 不是一个选项,Mysql 数据库替代品
- jquery - jQuery .val() 忽略输入的第一个字符