/* 2018.03.19. 7. gyakorlat SAS SQL alapok */ /* Szukseges SAS adatallomanyok: sqladat, sql2 feltoltese a szerverre (adott mappaba: pl. s2018) majd erre a fizikai konyvtarra SAS logikai konyvtarral (sqlek) hivatkozas --> ekkor megjelennek a SAS adatallomanyok az sqlek konyvtarban, es lathatoak a SAS szamara */ libname sqlek "/home/jozsefcsicsman/s2018" ; /* Egy egesz tabla atmasolasa (Data step) */ proc sql; create table sql as select * from sqlek.sqladat; quit; /* Feltetel szerinti szures, es egybol printeli az eredmenyt */ proc sql; select * from sql where f3 < 15500; quit; /* Tobb feltetel szerinti szures */ proc sql; select * from sql where f3 < 15500 and f2 < 12; quit; /* A valtozok rendre, atlag, maximum, elemszam es a minimum meghatarozasa */ proc sql; select avg(f2),max(f3),count(f4),min(f5) from sql; quit; /* Csoportositas valtozo szerint rendezve egymas alatt sorba szedve */ proc sql; select * from sql group by f6; quit; /* Rendezes ertek szerint */ proc sql; select * from sql order by f2; quit; /* Merge - inner join */ proc sql; create table egyutt as select * from sql inner join sqlek.sql2 on (sql.hisztorikus_adatok=sql2.hisztorikus_adatok); quit; /* Left join */ proc sql; create table leftjoin as select * from sql left join sqlek.sql2 on (sql.hisztorikus_adatok=sql2.hisztorikus_adatok); quit; /* Right join */ proc sql; create table rightjoin as select * from sql right join sqlek.sql2 on (sql.hisztorikus_adatok=sql2.hisztorikus_adatok); quit; /* Egy oszlop kidobatasa */ proc sql; alter table sql drop f3; quit; /* Adat modositas: ahol f2 < 10, f2 erteke 100 lesz, es f4 erteke 5 */ proc sql; update sql set f2=100, f4=5 where f2 < 10; quit; /* Adat beszurasa */ proc sql; insert into sql set hisztorikus_adatok='2017.03.20 00:14:00', f2=53, f4=50, f5=30, f6=10, f7=98, f8=1, f9= 42; quit;