问题描述
最近需要自学sql。
从SAS背景出发,我正在寻找与之等效的东西:
data output_set;
set input_set;
by REF Location;
if first.REF then FirsT_REF = 1;
run;
尝试构建sql中的等效项。我简要了解FirsT_VALUE()输出第一行。但做的不是完全一样。
select
REF,Location,case when FirsT_VALUE(REF) then FirsT_REF=1
from input_set
;
谢谢。
解决方法
等效于SAS代码:
select is.*,(case when row_number() over (partition by ref order by location) = 1 then 1 else 0 end)
from input_set is;