home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / bit / listserv / sasl / 3939 < prev    next >
Encoding:
Text File  |  1992-08-29  |  2.0 KB  |  64 lines

  1. Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
  2. Path: sparky!uunet!paladin.american.edu!auvm!COMPUSERVE.COM!76350.1604
  3. Message-ID: <920828134856_76350.1604_EHJ22-1@CompuServe.COM>
  4. Newsgroups: bit.listserv.sas-l
  5. Date:         Fri, 28 Aug 1992 09:48:56 EDT
  6. Reply-To:     Andy Norton <76350.1604@COMPUSERVE.COM>
  7. Sender:       "SAS(r) Discussion" <SAS-L@UGA.BITNET>
  8. From:         Andy Norton <76350.1604@COMPUSERVE.COM>
  9. Subject:      Re: print dup records
  10. Comments: To: SAS-L <SAS-L@AWIIMC12.IMC.UNIVIE.AC.AT>
  11. Lines: 51
  12.  
  13. ----------------------------------------------------------------------
  14. CONTENT:    Response
  15. SUMMARY:   Printing duplicate records
  16. REL/PLTF:  6.07.01/CMS, 6.04/PC-DOS
  17. E-ADDR:    76350.1604@compuserve.com
  18. NAME:      Andy Norton
  19. ADDRESS:   Trilogy Consulting, 5228 Lovers Lane, Kalamazoo MI 49002
  20. PHONE:     (616) 344-2191
  21. ----------------------------------------------------------------------
  22.  
  23. ON     Fri, 28 Aug 1992 08:37:07 EST
  24.        LYCACC%RITVM.BITNET@uga.cc.uga.edu  WROTE:
  25.  
  26. > I wonder if anyone knows a "easy" way to print duplicate records in
  27. a
  28. > data set.
  29. >
  30. > Thanks in advance,
  31. > Loyi
  32.  
  33. Ray Pass responded with a method that works, but does not print the
  34. first record in the by-group.  If you want to see all records within
  35. the duplicated group use
  36.     proc sort data=ORIG;
  37.       by IDNO;
  38.     run;
  39.  
  40.     data DUPS;
  41.       set ORIG;
  42.         by IDNO;
  43.       if not (first.IDNO and last.IDNO);
  44.     run;
  45.  
  46.     proc print data=DUPS;
  47.     run;
  48. I'm sure this trick has been rediscovered many times, but I first
  49. learned it from Grant Blank.
  50.  
  51. Or, in SQL (no sorting necessary), use
  52.     proc sql;
  53.       select     *
  54.       from       ORIG
  55.       group by   IDNO
  56.       having     count(*) > 1;
  57.     quit;
  58. This will print automatically.
  59.  
  60. Note!  This is not standard SQL.  It takes advantage of the SAS
  61. "re-merging" enhancement, which joins the IDNO's satisfying the HAVING
  62. clause with the data set ORIG.  You don't have to worry about this
  63. unless you try to use this program outside of SAS (such as in ORACLE).
  64.