sql - 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
;
谢谢。
解决方案
SAS代码的等价物是:
select is.*,
(case when row_number() over (partition by ref order by location) = 1 then 1 else 0 end)
from input_set is;
推荐阅读
- scala - 中断 Future 映射链并返回一个 Left
- android-mediarecorder - MediaRecorder SetNextOutputFile() 在过渡时丢帧?
- apache - 设置 htaccess 重定向
- spring-boot - WithMockUser 不起作用,但 SecurityContext.getContext().setAuthentification 确实
- javascript - 使用适配器功能将动态自定义标记图像添加到 AMCharts 中的图例
- r - 用于 Shiny 上多个场景的 RSelenium 并发用户
- apache-pulsar - Pulsar Reader 错过阅读器离线时写入的消息
- java - Spring cloud sleuth ExtraFieldPropagation在Spring cloud Gateway Filter中失败
- reactjs - graphQL apollo 库中的 cache.writeFragment 方法不起作用
- karate - 如何使用空手道生成简单的测试结果,例如 {testname:abc, status:pass:duration23sec}