sql—在sas表中查找双线

idfiyjo8  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(401)

我收到了一个包含两行数据的表,我想将其可视化。我试着这样写:

proc sql; create table double_lines as
select *, count(*) as c
from table 
group by *
having c>1
;quit;

但我不能按*分组,还有别的方法吗?我可以想象,简单地声明所有现有列是一种解决方案,但这需要一段时间。有更实际的解决办法吗?

x7yiwoj4

x7yiwoj41#

最简单的解决方案可能是使用 dupout 对a的命令 proc sort :

data have;
length first_col 8. second_col third_col $20;
input first_col second_col $ third_col $;
datalines;
1234     Insurance   A
1234     Insurance   A
1234     Auto        B
5678     Claims      B
5678     Claims      B
5678     New         C
;
run;

proc sort data=have noduprecs dupout=want;
   by _all_;
run;
r6hnlfcb

r6hnlfcb2#

首先, group by * 在sql中无效。
你一定有什么东西作为你的礼物 group by 变量。我接受@jepperømer juul的数据作为样本。

data have;
length first_col  8. second_col third_col $20 hashid $64.;
input first_col second_col $ third_col $;
hashid = md5(cats(of _all_));
datalines;
1234     Insurance   A
1234     Insurance   A
1234     Auto        B
5678     Claims      B
5678     Claims      B
5678     New         C
;
run;

proc sql noprint;
  create table want as 
  select *, count(*) as count from have group by hashid having count(*)>1;
quit;

一般来说, hashid 是其行的唯一ID,其值取决于此行上所有其他变量的值。

相关问题