sql - 如何从第一行中减去第二行,从第三行中减去第四行,依此类推
问题描述
我有 SAS 数据集,如附图所示。我想要完成的是从 Total 列中创建新的计算字段,其中我减去第一行第二行、第三行第四行等等。
到目前为止我尝试过的是
DATA WANT2;
SET WANT;
BY APPT_TYPE;
IF FIRST.APPT_TYPE THEN SUPPLY-OPEN; ELSE 'ERROR';
RUN;
这会引发错误,因为语句无效..
不太确定该怎么做
解决方案
干得好。我能用你提供的有限信息做到最好。下次请提供示例数据和您的预期输出。
data have;
input APPT_TYPE$ _NAME_$ Quantity;
datalines;
ASON Supply 10
ASON Open 8
ASSN Supply 9
ASSN Open 7
S30 Supply 11
S30 Open 8
;
proc sort data = have;
by APPT_TYPE descending _NAME_ ;
run;
data want;
set have;
by APPT_TYPE descending _NAME_;
lag_N_Order = lag1(Quantity);
N_Order = Quantity;
Difference = lag_N_Order - N_Order;
keep APPT_TYPE _NAME_ N_Order lag_N_Order Difference Type;
if last.APPT_TYPE & last._NAME_ & Difference>0;
run;
推荐阅读
- c++ - 在类模板中定义子类的方法
- reactjs - AWS Serverless:在一个域下配置多个前端应用程序
- google-cloud-platform - 谷歌云任务消失
- javascript - 无法访问数组中的一项,但我可以访问整个数组
- python - Django post save 信号不更新数据库
- python - 如何将此数据集拆分为训练集和验证集?
- python - 为什么我得到两个变量的 id 对于整数但不是浮点数?
- asp.net-core - ASP.NET Core 从 HTTP 重定向到 HTTPS 问题
- c# - 如何在 ASP.NET C# 中删除 cookie 并检查同一请求中 cookie 的状态
- android-room - 防止多个表更改时多次触发 Room Observable 查询