全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4077 8
2015-07-25
这个问题看起来很简单,

pro sql;
select count(*)... 可以得到行数,但是duplicate的行数也计算在内。

要去掉重复行数,如果写成
proc sql;
select count (distinct *)... 似乎顺利成章,但语法抱错.

而这种
proc sql;
select count(*) from (select distinct * from datatable)... 又显得有点矫情。

请教各位更好的方法。谢啦!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-7-25 11:12:17
nodup
nodupkey
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-25 11:18:01
为什么非要用sql,用data步排序,nodup可以实现啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-25 11:55:28
不知道下面这种行不行 初学者~
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-25 12:00:17
Greenlane 发表于 2015-7-25 11:01
这个问题看起来很简单,

pro sql;
proc sort data=... nodup/nodupkey;
by...;
得到非重复的

proc summary data=....;
by...
output out=... (where _freq_ >1)
得到重复的


是不是这样?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-25 13:17:59
重复也要看变量,你要取哪个variable不重复的观测,就select count(distinct variable) from datasets;
如果是针对多个变量的话,可以这么写:
proc sql;
select count(*) from (select count(*) from datasets group by variable1,variable2,....,variablen);
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群