SAS中文论坛

标题: 条件限定下删除重复记录 [打印本页]

作者: shiyiming    时间: 2012-8-24 09:18
标题: 条件限定下删除重复记录
[size=150:pb7a0sok]先给出数据样式,问题见后。。。[/size:pb7a0sok]
[code:pb7a0sok]data raw;
input  date yymmdd10. id $ 12-25  name $ ;
datalines;
2009-03-05        3202831070971        石媛
2009-06-04        3202831070971        石媛
2009-04-16        3202831070981        陈泽宇
2009-07-30        3202831070981        陈泽宇
2009-03-19        3202831070991        郭战
2009-07-15        3202831070991        郭战
2009-03-05        3202831071001        宋羲晨
2009-06-18        3202831071001        宋羲晨
2009-03-02        3205239930131        吴王钰洁
2009-04-22        3205239930131        吴王钰洁
2003-02-20        3205830002811        黄晓悦
2003-02-20        3205830002811        黄晓悦
2003-08-20        3205830002811        黄晓悦
2003-08-20        3205830002811        黄晓悦
2004-02-19        3205830002811        黄晓悦
2005-04-21        3205830002811        黄晓悦
2003-02-20        3205830002812        黄晓雯
2003-02-20        3205830002812        黄晓雯
2003-08-20        3205830002812        黄晓雯
2003-08-20        3205830002812        黄晓雯
2004-02-19        3205830002812        黄晓雯
2005-04-21        3205830002812        黄晓雯
2002-09-25        3205830005601        郭辰幸
2003-03-20        3205830005601        郭辰幸
2003-03-20        3205830005601        郭辰幸
2004-05-14        3205830005601        郭辰幸
2005-04-20        3205830005601        郭辰幸
2003-01-16        3205830005621        张俊晖
2003-01-16        3205830005621        张俊晖
2003-07-10        3205830005621        张俊晖
2003-07-10        3205830005621        张俊晖
2004-01-15        3205830005621        张俊晖
2005-04-22        3205830005621        张俊晖
;
run;[/code:pb7a0sok]
[size=150:pb7a0sok][color=#FF0000:pb7a0sok][b:pb7a0sok]三变量,日期,编号,以及姓名;
要求是在ID号与姓名相同的情况下,若日期相同,则保留该重复记录的第一条,(也就是求 日期,ID,姓名 的唯一性)
杯具出现,期望京剧现身,不胜感激~~~[/b:pb7a0sok][/color:pb7a0sok][/size:pb7a0sok]
作者: shiyiming    时间: 2012-8-24 10:11
标题: Re: 条件限定下删除重复记录
[code:2cvlgyum]data r1;
        set raw;
        by id name date;
        if first.date;
run;[/code:2cvlgyum]
[size=150:2cvlgyum]自己写了个简单的语句,有大侠看看是否有错,?
另外,SQL语句怎么实现呢?期待回复~~[/size:2cvlgyum]
作者: shiyiming    时间: 2012-8-27 01:26
标题: Re: 条件限定下删除重复记录
[code:3hjsgvp1]
data raw;
input  date yymmdd10. id $ 12-25  name $ 29-38  ;
datalines;
2009-03-05   3202831070971   石媛
2009-06-04   3202831070971   石媛
2009-04-16   3202831070981   陈泽宇
2009-07-30   3202831070981   陈泽宇
2009-03-19   3202831070991   郭战
2009-07-15   3202831070991   郭战
2009-03-05   3202831071001   宋羲晨
2009-06-18   3202831071001   宋羲晨
2009-03-02   3205239930131   吴王钰洁
2009-04-22   3205239930131   吴王钰洁
2003-02-20   3205830002811   黄晓悦
2003-02-20   3205830002811   黄晓悦
2003-08-20   3205830002811   黄晓悦
2003-08-20   3205830002811   黄晓悦
2004-02-19   3205830002811   黄晓悦
2005-04-21   3205830002811   黄晓悦
2003-02-20   3205830002812   黄晓雯
2003-02-20   3205830002812   黄晓雯
2003-08-20   3205830002812   黄晓雯
2003-08-20   3205830002812   黄晓雯
2004-02-19   3205830002812   黄晓雯
2005-04-21   3205830002812   黄晓雯
2002-09-25   3205830005601   郭辰幸
2003-03-20   3205830005601   郭辰幸
2003-03-20   3205830005601   郭辰幸
2004-05-14   3205830005601   郭辰幸
2005-04-20   3205830005601   郭辰幸
2003-01-16   3205830005621   张俊晖
2003-01-16   3205830005621   张俊晖
2003-07-10   3205830005621   张俊晖
2003-07-10   3205830005621   张俊晖
2004-01-15   3205830005621   张俊晖
2005-04-22   3205830005621   张俊晖
;
run;

/* 方式一: 数据步 */
proc sort data=raw out=ads;
  by date id name;
run;

data bds;
  set ads;
  by date id name;
  if first.name;
run;

/* 方式二:PROC SORT */
proc sort data=raw noduprecs out=cds dupout=dds;
  by date id name;
run;

/* 方式三:PROC SQL */
proc sql noprint;
  create table eds as
  select distinct date,id,name
  from raw;
quit;
[/code:3hjsgvp1]




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2