Sunteți pe pagina 1din 13

1. Care dintre metodele de combinare a seturilor de date folosesc instrucțiunea SET?

Instrucutiunea SET este folosita pentru fuziunea unu-la-unu, pentru concatenare si pentru
interclasare.

2. Ce diferențe sunt între concatenare și adăugare?

Există câteva diferențe importante între concatenare și adăugare:

În timp ce secțiunea de date defineste un set de date nou la concatenare, procedura APPEND doar
adaugă observațiile unui set de date la sfârșitul unui set de date de bază (master data set).

SAS nu citește datele din setul de date de bază atunci când execută procedura APPEND.

3. Ce fel de variabilă este cea definită prin IN=variabila?

Prin IN=variabila este definita o variabila temporara.

4. De ce este uneori necesară redenumirea variabilelor la combinarea seturilor de date?

Dacă există mai multe variabile care au același nume în seturile de date de intrare, atunci fuziunea
seturilor de date în secțiunea de date va duce la suprascrierea valorilor variabilelor din primul set de
date cu valorile variabilelor cu același nume din seturile de date care îl succed.

5. În declarația MERGE date1(DROP=Nume) variabila Nume va putea fi folosită în continuare în


secțiunea de date?

Optiunea DROP doar elimina variabilele din noul set de date, acestea putand fi in continuare citite si
diponibile pentru procesare in sectiunea de date.

6. Câte seturi de date pot participa, în procedura SQL, la o joncțiune internă ?

In functie de sintaxa utilizata, pot participa de la 2 pana la 256 de tabele/view-uri la o jonctiune


interna.

7. Care este rolul funcției COALESCE și împreună cu ce tipuri de joncțiuni se folosește?

COALESCE suprapune coloanele specificate prin verificarea valorii fiecărei coloane în ordinea în care
acestea sunt listate și returnarea primei valori care nu este o valoare nulă. Aceasta se poate folosi
impreuna cu mai multe tipuri de join-uri.
1.

DATA pret1;

INPUT COD pret;

DATALINES;

124 23.5

178 35.0

197 44.6

;RUN;

DATA pret2;

INPUT COD pret;

DATALINES;

234 53.7

356 75.5

367 84.0

;RUN;

DATA concatenare;

SET pret1 pret2;

RUN;

Tip de combinare: Concatenare

Rezultat:
2.

DATA nume1;

INPUT ID$ nume$;

DATALINES;

0123 Mihai

0134 Delia

0162 Ionela

; RUN;

DATA nume2;

LENGTH nume $ 10.;

INPUT ID$ nume$;

DATALINES;

0124 Alexandra

0138 Georgiana

0189 Sebastian

; RUN;
DATA concatenare;

SET nume1 nume2;

RUN;

Tip de combinare: Concatenare

Rezultat:

3.

DATA persoane1;

INPUT cod Gen $;

DATALINES

1M

2F

3M;

RUN

DATA persoane2;

INPUT cod Gen $ Judet $;

DATALINES

4 Masculin IL

5 Feminin DB

6 Masculin VL

7 Feminin CJ ;

RUN
;

data interclasare

set persoane1 persoane2;

by Cod;

RUN

PROC PRINT DATA = interclasare

Tip de combinare: Interclasare

Rezultat:

4.

DATA persoane1;

INPUT cod Gen $;

DATALINES;

1M

2F

3M

4F

RUN;
DATA persoane2;

INPUT cod Gen $ Judet $;

DATALINES;

2 Masculin IL

3 Feminin DB

6 Masculin VL

7 Feminin CJ

RUN;

data jonctiune;

merge persoane1 persoane2;

by /* descending*/ Cod;

RUN;

PROC PRINT DATA = jonctiune;

Tip de combinare: Fuziune pe baza unei corespondente

Rezultat:

5.

DATA produse1;

INPUT COD Pret Disponibil;

DATALINES;

124 23.5 50

178 35.0 43

197 44.6 12
;

RUN;

DATA produse2;

INPUT COD Cost Stoc;

DATALINES;

234 53.7 10

356 75.5 12

367 84.0 34

RUN;

DATA concatenare;

SET produse1 (RENAME=(Disponibil=Stoc))

produse2 (RENAME=(Cost=Pret));

RUN;

Tip de combinare: Concatenare

Rezultat:

6.

PROC SQL;

CREATE TABLE inner_SQL as

SELECT b.Tranzactie, b.Cod_produs,

b.Cantitate, b.DATA_vanzare,

a.Cod_vanzare,

a.Nume
FROM vanzari b, agenti a

WHERE a.Cod_vanzare = b.Cod_vanzare

ORDER BY Cod_vanzare;

QUIT;

INNER JOIN

Rezultat:

7.

PROC SORT DATA =

vanzari;

BY Cod_vanzare;

RUN;

PROC SORT DATA =agenti;

BY Cod_vanzare;

RUN;

DATA inner_join;

MERGE vanzari ( in = s )

agenti ( in = p );

BY Cod_vanzare;

IF s and p;

RUN;

INNER JOIN
Rezultat:

8.

PROC SQL;

CREATE TABLE left_SQL as

SELECT s.Tranzactie,

s.Cod_produs,s.Cantitate,

s.DATA_vanzare,

p.Cod_vanzare,

p.Nume

FROM vanzari s

left join

agenti p

ON s.Cod_vanzare =

p.Cod_vanzare

ORDER BY Cod_vanzare;

QUIT;

LEFT JOIN

Rezultat:
9.

PROC SORT DATA =

vanzari;

BY Cod_vanzare;

RUN;

PROC SORT DATA = agenti;

BY Cod_vanzare;

RUN;

DATA left_MERGE;

MERGE vanzari ( in = s )

agenti ( in = p );

BY Cod_vanzare;

IF s;

RUN;

LEFT JOIN

Rezultat:
10.

PROC SQL;

CREATE TABLE right_SQL as

SELECT p.Cod_vanzare,

p.Nume,

s.Tranzactie,

s.Cod_produs,

s.Cantitate,

s.DATA_vanzare

FROM vanzari s

right join

agenti p

ON s.Cod_vanzare =

p.Cod_vanzare

ORDER BY Cod_vanzare;

QUIT;

RIGHT JOIN

Rezultat:

11.

PROC SORT DATA =


exemple.Vanzari;

BY Cod_vanzare;

RUN;

PROC SORT DATA = agenti;

BY Cod_vanzare;

RUN;

DATA full_MERGE;

MERGE vanzari ( in = s )

agenti ( in = p );

BY Cod_vanzare;

RUN;

FULL OUTER JOIN

Rezultat:

12.

PROC SQL;

CREATE TABLE full_SQL as

SELECT p.Cod_vanzare,

p.Nume,

s.Tranzactie,

s.Cod_produs,

s.Cantitate,
s.DATA_vanzare

FROM vanzari s

full outer join

agenti p

ON s.Cod_vanzare =

p.Cod_vanzare

ORDER BY Cod_vanzare;

QUIT;

FULL OUTER JOIN

Rezultat:

S-ar putea să vă placă și