Hi All,
I need the below output using proc sql... Please help
data test;
input id marks;
cards;
1 10
2 20
3 30
4 40
;
run;
proc sql;
create table WANT as
select *,
(select sum(MARKS) from TEST where ID <= A.ID) as TOTAL
from TEST A;
quit;
Why do you need to use SQL? Datastep is far better suited to this. Untested code here, post test data in the form of a datastep as text in a code window ({i} above post)!!
proc sql;
create table WANT as
select *,
(select sum(MARKS) from TOTAL where ID <= A.ID) as TOTAL
from TEST A;
quit;
data test;
input id marks;
cards;
1 10
2 20
3 30
4 40
;
run;
proc sql;
create table WANT as
select *,
(select sum(MARKS) from TEST where ID <= A.ID) as TOTAL
from TEST A;
quit;
Its called a subquery. A.ID is from the outer query, the sub query is getting all records with ID less than the row from A and summing them up.
It is not being "grouped" it is a sub-query. So one first iteration, the subquery sums() up everything with an id < 10 and returns that, then next iteration id <20 returns that on and on. You may want to have a readup on SQL and how it works.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.