Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

/*

Pytanie 1

Klucz główny

a. nie moze być pusty

b. nie może się powtarzać

c. każda tabela powinna go posiadać

d. jest pierwszym krokiem do wprowadzenia integralności na poziomie tabel

Odpowiedź A B C D (wszystkie)

Pytanie 2

1. Utworzyć tabelę wyniki sprzedazy o strukturze tabeli retail z biblioteki sashelp (bez przepisywania)

2. Dalsze polecenia wykonać dla tabeli wyniki_sprzedazy.

3. Zmienić etykietę pierwszej kolumny na "Sales in dollars"

4. Dodać kolumnę COUNTRY (tekstową o długości 10) REGION (tekstową o długości 20)

5. Usunąć druga kolumnę

6. Dodać rekordy z pliku test2.sas

7 Zmienić nazwy krajów Szwecje na "Canada", Norwegę na "Nepal", a Japonię na "Zambia"

8. Zwiększyć wyniki sprzedaży w Azji o numer dnia wpisu

9. Wyświetlić minimalną, maksymalną i średnią sprzedaz (do 2 miejsc po przecinku) w danym kraju
oraz kraj (z odpowiednimi etykietami)

10. Wyświetlić ilość wpisów w danych latach według krajów, tzn. kolumny rok, kraj i ilość (z
odpowiednimi etykietami).*/

/* Kroki 1 i 2: Utworzyć tabelę wyniki_sprzedazy o strukturze tabeli retail z biblioteki sashelp (bez
przepisywania) */

proc sql;

create table wyniki_sprzedazy as


select*from sashelp.retail;

select*from wyniki_sprzedazy;

run;

/* Krok 3: Zmienić etykietę pierwszej kolumny na "Sales in dollars" */

proc sql;

select

Sales as "Sales in Dollars",

from wyniki_sprzedazy;

quit;

proc print data=wyniki_sprzedazy;

var _All_;

run;

/* Krok 4: Dodać kolumnę COUNTRY (tekstową o długości 10) REGION (tekstową o długości 20) */

proc sql;

ALTER TABLE wyniki_sprzedazy

Add Country VARCHAR(20)

Add Region VARCHAR(20);

run;

proc print data=wyniki_sprzedazy;

var _All_;

run;

/* 5 Usunać kolumne */

proc sql;

ALTER TABLE wyniki_sprzedazy

DROP Date;

run;
/*6*/

data wyniki_sprzedazy;

set sashelp.retail (label="Sales in dollars" drop=Date);

length COUNTRY $ 10 REGION $ 20;

run;

data wyniki_sprzedazy;

set wyniki_sprzedazy;

infile "ścieżka_do_pliku/test2.sas";

input /* kod do wczytania danych z pliku test2.sas */;

run;

/* Krok 7: Zmienić nazwy krajów Szwecji, Norwegii i Japonii */

data wyniki_sprzedazy;

set wyniki_sprzedazy;

if Country = "Sweden" then Country = "Canada";

else if Country = "Norway" then Country = "Nepal";

else if Country = "Japan" then Country = "Zambia";

run;

/* Krok 8: Zwiększyć wyniki sprzedaży w Azji o numer dnia wpisu */

data wyniki_sprzedazy;

set wyniki_sprzedazy;

if Region = "Asia" then Sales = Sales + EntryDate;

run;

/* Krok 9: Wyświetlić minimalną, maksymalną i średnią sprzedaż w danym kraju */

proc summary data=wyniki_sprzedazy nway;

class Country;

var Sales;

output out=stat_summary min=MinSales max=MaxSales mean=AvgSales;

run;
/* Krok 10: Wyświetlić ilość wpisów w danych latach według krajów */

proc sql;

create table entries_by_country as

select Year, Country, count(*) as EntryCount

from wyniki_sprzedazy

group by Year, Country;

quit;

/* Pytanie 3

Najmniejsza część bazy danych to

Wybierz wszystkie poprawnie

A relacja

B rekord

C krotka

D pole

Odpowiedź to pole - D

*/

/*Pytanie 1

Utworzyć pustą tabelę sport składającą się z pierwszej i trzeciej kolumny tabeli SASHELP BASEBALL

Następnie dodać tylko te dane z tabell SASHELP BASEBALL, dla których ostatnia kolumna jest pusta, a
nazwisko zawodnika jest na literę A lub B, posortowane wg nazwisk malejąco.

*/

proc sql;

create table sport(keep=name nAtBat ) like sashelp.baseball;

describe table sport ;

run;

proc sql;
select*from sashelp.baseball

where missing(logSalary) and substr(Name,1,1) in ('A', 'B') order by name desc;

run;

/*Pytanie 2

Stworzyć tabelę FILMY zawierającą następujące kolumny

-Nr f liczbowa 3 cyfry z etykietą "Nr filmu",

-Nazwa f tekstowa 30 znaków z etykietą "Tytul".

-Cena f liczbowa 3 cyfry całkowite + 1 po przecinku z etykietą "Cena"

dodać do niej 3 sensowne rekordy, w tym 1 bez ceny*/

proc sql;

create table FILMY (

Nr_f NUMERIC(3) label="Numer filmu",

Tytul_f CHAR(30) label="Tytuł filmu",

Cena_f NUMERIC(4,1) label="Cena"

);

describe table filmy;

quit;

proc sql;

insert into work.filmy

values (100,'Shrek',54.0)

values (101,'Piraci',554.0)

values (102,'Avatar',0.0);

select * from filmy;

quit;

proc print data=filmy;

var _All_;

run;

You might also like