我有一个视图会返回以下结果:
我需要像下面的图像一样放置标识符
必需的输出:
输出说明:如果您可以看到图像1,那么图像释放1中有3个日期。从那里我需要得到1作为MAX的标识符(IMPL_DATE)。在RELEASE_ID = 1,我们有08/20/2016,08/09/2016和2016年10月31日。从2016年10月31日是最大的约会。因此,需要标识符为1,其他2将为0.与RELEASE_ID 2相同的事情我们有2个日期,从它们01/13/2017是最大的日期所以,需要在该行中的1和其他' s将是0。
提前谢谢......
答案 0 :(得分:1)
您可以使用窗口函数执行此操作:
select t.*,
(case when rank() over (partition by portfolio_id, release_id
order by impl_date desc
) = 1
then 1 else 0
end) as indentifier
from t;
以上将为具有最大日期的所有行分配“1”。如果您想确保只为一行分配了一个值(即使有关系),请使用row_number()
代替rank()
。