BookmarkSubscribeRSS Feed
devarayalu
Fluorite | Level 6

data admit;

input a $ b;

cards;

aa 1

aa 3

bb 1

bb 2

dd 1

cc  1

;

proc sort data=admit;

by  a b;

run;

data one;

set admit;

by  a b;

if first.a;

run;

Can any one help what will be the equivalent proc sql code?

Thank you in advance.

4 REPLIES 4
pradeepalankar
Obsidian | Level 7

proc sql;

select  * from (select distinct * from admit) group by a having b=min(b)

order by a;

quit;

devarayalu
Fluorite | Level 6

Thank you so much Pradeep, and need some more information Suppose if we have only one by variable. data one; set admit; by  a; if first.a; run; Then how to select first. observations from the dataset.

PGStats
Opal | Level 21

From the SQL-92 Standard :


A table is a multiset of rows.

multiset: An unordered collection of objects that are not necessarily distinct. The collection may be empty. [my underlying]

Thus any operration that would rely on observation (row) order (first, last, previous, next, etc) cannot be done directly in SQL.

 

PG

PG
Haikuo
Onyx | Level 15

Although some undocumented feature aka monotonic() may help you on this, but If only have ONE variable, how can you tell whether it is the first one in the group or otherwise, it does not make any difference as the end result, so you may just as well use DISTINCT clause to get the same outcome.

Haikuo

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
  • 4 replies
  • 1485 views
  • 0 likes
  • 4 in conversation