BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
JBerry
Quartz | Level 8

I just spent a heck of a time debugging a SAS program today, only to discover the root cause to be the difference between SELECT DISTINCT and GROUP BY  inside a proc sql procedure.

From my SQL experience, these two statements are equivalent, but I am relatively new to SAS, so I did not see this coming.

Can anyone explain why?  I want my sanity back. Maybe if there's a good explanation of why SAS behaves like this, I'll take back all those nasty things I uttered. :smileydevil:

data have;

input id tt$;

cards;

1 ABADSFASDFG

2 BADSOFKJPAO

3 CAFJAPOFMAV

4 AABSADSBADS

5 AADSFAWEVAA

;

proc sql;

  create table want as

    select distinct(substr(tt,1,1)) as first_letter

    from have;

  create table why as

    select substr(tt,1,1) as first_letter

    from have

  GROUP BY 1;

quit;

1 ACCEPTED SOLUTION

Accepted Solutions
JBerry
Quartz | Level 8

Silly me didnt read my log. it appears as though SAS treats Substr as a "summary function",  like a SUM or a COUNT.

View solution in original post

1 REPLY 1
JBerry
Quartz | Level 8

Silly me didnt read my log. it appears as though SAS treats Substr as a "summary function",  like a SUM or a COUNT.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 3196 views
  • 0 likes
  • 1 in conversation