sql - SAS - 需要使用 .first .last obs 但如何指定多个键/复合键?

标签 sql sas proc-sql

我正在尝试使用 .first 和 .last obs 来消除成对的重复项(通过将重复项和唯一项写到单独的表中)。问题是我的 key 由几个变量组成 - 家庭 ID、产品名称和日期变量(实际上是日期字段的日期和月份)。如何使用 SAS 正确指定这一点?如果使用 PROC SQL 更容易,那也很好。

最佳答案

当使用 BY 处理来访问重复项时,您实际上只需要查看第一个。和最后。 BY 列表中最后一个变量的变量。

data nodups dups ;
  set have ;
  by household product date;
  if (first.date and last.date) then output nodups;
  else output dups;
run;

这会将唯一记录输出到一个数据集,并将重复记录输出到另一个数据集。

关于sql - SAS - 需要使用 .first .last obs 但如何指定多个键/复合键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565389/

相关文章:

mysql - mysql如何先执行limit,再执行order?

sql - 使用 sql/sequelize 通过 userId 获取喜欢的帖子并获取帖子的喜欢计数

PHP-更新表时出错

hadoop - 当本地模式下数据不适合 RAM 时,如何设置 Apache Spark 以使用本地硬盘?

sas - 如何在 Windows XP 上使用 SAS 重命名文本文件?

linux - SAS EG 如何在 .egp WINDOWS/Linux 中提取、编辑和插入程序

sql - 将值 "Good"和 "Bad"转换为 bool 值以计算百分比(即,从所有记录中,80% 为 "Good") - 使用 SQL

sql - 多个选择语句合二为一,创建新列

sql - 如何使用PROC SQL查找数值变量的长度

sas - 根据现有 id 变量创建唯一的 id 变量