You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除应用旧版本号并汇总申请金额?(SAS Enterprise Guide数据集查询)

SAS基础操作解决方案:保留最高版本记录并汇总金额

一、保留每个application_ID的最高version_num记录

有两种常用实现方式,根据习惯选择即可:

方法1:PROC SORT + DATA步

先按application_ID分组,再按version_num降序排序,确保每个分组的最高版本排在首位;接着用DATA步的first.变量筛选出每个分组的第一条记录:

/* 排序数据集 */
proc sort data=your_dataset out=sorted_data;
    by application_ID descending version_num;
run;

/* 保留每个application_ID的最高版本记录 */
data keep_latest_version;
    set sorted_data;
    by application_ID;
    if first.application_ID;
run;

方法2:PROC SQL关联查询

通过子查询获取每个application_ID的最大版本号,再关联原数据集筛选对应记录:

proc sql;
    create table keep_latest_version as
        select a.*
        from your_dataset a
        inner join (
            select application_ID, max(version_num) as max_version
            from your_dataset
            group by application_ID
        ) b 
        on a.application_ID = b.application_ID and a.version_num = b.max_version;
quit;

二、按client_ID汇总grant_request金额

基于第一步得到的keep_latest_version数据集,用以下两种方式完成汇总:

方法1:PROC SUMMARY

适合快速生成汇总统计,nway参数表示只输出分组汇总结果:

proc summary data=keep_latest_version nway;
    class client_ID;
    var grant_request;
    output out=client_summary sum=total_grant;
run;

/* 查看汇总结果 */
proc print data=client_summary;
run;

方法2:PROC SQL分组聚合

用group by和sum()函数直接计算每个client的总金额:

proc sql;
    create table client_summary as
        select client_ID, sum(grant_request) as total_grant
        from keep_latest_version
        group by client_ID;
quit;

学习重点提示

结合你正在学习的Udemy入门课程和书籍,可以重点深挖这些知识点:

  • DATA步中by语句与first./last.变量的逻辑与应用
  • PROC SORT的排序规则及分组排序场景
  • PROC SQL的关联查询、分组聚合语法
  • PROC SUMMARY/PROC MEANS的汇总统计功能

内容的提问来源于stack exchange,提问作者Adrienne de Souza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:23:11