首页 > 解决方案 > SAS First.Variable 操作的 Oracle 等效项

问题描述

最近需要自学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
;

谢谢。

标签: sqloracle

解决方案


SAS代码的等价物是:

select is.*,
       (case when row_number() over (partition by ref order by location) = 1 then 1 else 0 end)
from input_set is;

推荐阅读