PROC SQL
Porównanie terminologii
SAS
PROC SQL
zbiór danych
(dataset/data file)
tabela
obserwacja
wiersz
zmienna
kolumna
merge
join
missing value
NULL
Zapytanie SQL
proc sql;
SELECT nazwa kolumny / nazwy kolumn
FROM nazwa tabeli / nazwy tabel
ON określenie warunku /warunków połączeń
WHERE określenie warunków
GROUP BY nazwa kolumny / nazwy kolumn grupujących
HAVING określamy warunki dla wyboru grup
ORDER BY zmienne sortujące
quit;
SELECT
Podajemy kolumny oraz tworzymy nowe, które
mają być w wyniku zapytania.
*-
oznacza wszystkie kolumny z tabeli wejściowej
AS –
za pomocą tego wyrażenia tworzymy nową nazwę
kolumny
Przykład:
proc sql;
select *, imie||nazwisko AS Osoba
from pracownicy
where staz le 3;
quit;
Operator konkatenacji - ||
proc sql;
select imie||nazwisko
from pracownicy;
quit;
TRIM – usuwa spacje
proc sql;
select trim(imie)||trim(nazwisko)
from pracownicy;
quit;
Użyteczne opcje PROC SQL
proc sql;
Create table
nowa (KEEP=…
(RENAME=( zm1=nowazm) DROP =
As SELECT *
from zbior
nowa (KEEP=…
(RENAME=( zm1=nowazm) DROP =
quit;
Funkcje agregujące
Funkcja
agregująca
Opis
AVG, MEAN
Przeciętna wartość
COUNT, FREQ,
N
liczba niebrakujących wartości
CSS
skorygowana suma kwadratów
CV
współczynnik wariacji
MAX
największa wartość
MIN
najmniejsza wartość
NMISS
liczba braków danych
PRT
prawdopodobieństwo większej wartości
bezwzględnej T Studenta
RANGE
rozstęp
STD
odchylenie standardowe
STDERR
standardowy błąd średniej
SUM
suma
SUMWGT
suma wartości zmiennej WEIGHT
T
wartość t Studenta dla testowania hipotezy, że
średnia populacji jest zerowa
USS
nieskorygowana suma kwadratów
VAR
wariancja
Użycie funkcji agregującej
proc sql;
select funkcja(kolumna) as nazwa
from tabela;
quit;
Przykład:
proc sql;
select AVG(pensja) as srednia_pensja
quit;
Distinct
DISTINCT jest używany wraz z instrukcją
SELECT
Umożliwiając Usuwanie duplikatów
Przykład:
proc sql;
select distinct produkt
from sprzedaz;
quit;
Operatory arytmetyczne
Operator
Opis
+
dodawanie
-
odejmowanie
*
mnożenie
/
dzielenie
**
potęgowanie
=
równa się
proc sql;
select *, pensja*6 as pensja_półroczna
from pracownicy;
quit;
Calculated
Można stworzyć nową zmienną i później
wykorzystywać ją w tym samym zapytaniu w SELECT
lub WHERE używając wyrażenia CALCULATED.
Przykład:
proc sql;
select nazwisko,imie, pensja, (pensja * 1.07) as
nowapensja,
calculated nowapensja * .5 as polowa_nowejpensji
from pracownicy;
quit;
CASE
Za pomocą tego wyrażenia można stworzyć nową zmienną na
podstawie określonych warunków.
Przykład:
proc sql;
create table tab2 as
select imie, nazwisko, plec,
case plec
when 'M' then 'mężczyzna'
when 'K' then 'kobieta'
end as pelna_nazwa
from pracownicy;
quit;
Coalesce
Funkcja COALESCE umożliwia zastąpienie
wartości NULL dowolnym wpisem, bądź
wartością z innej kolumny.
Przykład:
proc sql;
select nazwisko,imie, coalesce(plec,'brak
danych') as plec
from braki;
quit;
WHERE
Określamy warunki dla wierszy które
muszą być spełnione aby znalazły się
one w wyniku zapytania
Przykład:
proc sql;
select * from pracownicy
where staz le 3;
quit;
Operatory porównania
Operator
Zapis
mnemonic
zny
Opis
=
EQ
równy
^= lub <>
NE
różny
<
LT
mniejszy niż
<=
LE
mniejszy lub
równy
>
GT
większy niż
>=
GE
większy lub
równy
Operatory porównania
fragmentów tekstu
Operator
Opis
EQT
równy
NET
różny
GTT
większy niż
LTT
mniejszy niż
GET
większy lub równy
LET
mniejszy lub równy
ORDER BY
ORDER BY sortuje rosnąco lub malejąco wiersze
według jednej lub kilku kolumn, podając ich nazwy
bądź odpowiedni numer kolumny określonej w SELECT
ASC - wiersze mają być sortowane rosnąco;
DESC - wiersze mają być sortowane malejąco.
Przykład:
proc sql;
select * from pracownicy
order by nazwisko desc;
quit;
Operatory logiczne
Symb
ol
Zapis
mnemonic
zny
Opis
Przykład
&
AND
Oba warunki
muszą być
spełnione
Staz<10 and
pensja<3000
! lub |
OR
Jeden z
warunków
musi być
spełniony
plec=‘K’ or
wiek<18
^ lub
<>
NOT
Warunek jest
niespełniony
nazwisko<>’No
wak’
Zmiana wielkości liter
SAS
PROC SQL
UPPER
UPCASE
LOWER
LOWCASE
Pozostałe operatory
warunkowe
Operator
Opis
ANY
Jakikolwiek element z podzapytania
musi spełniać warunek
ALL
Wszystkie dane z podzapytania muszą
spełniać warunek
BETWEEN-AND
Wybranie danych z określonego
zakresu
CONTAINTS
Wybranie danych na podstawie
określonego tekstu
EXISTS
Wybranie istniejących danych
IN
Wybiera dane z listy, które zawierają
min. 1 element
IS NULL lub IS
MISSING
Wybiera brakujące wiersze
LIKE
Wybranie danych zgodnych z podanym
wzorcem
=*
Wybranie danych tak samo brzmiących
LIKE
LIKE używa się po WHERE aby wybrać wiersze w których
kolumny spełniają pewien wzorzec.
_ (znak podkreślenia) – oznacza 1 znak
% - wiele znaków
Przykład:
proc sql;
create table tab2 as
select imie,nazwisko,plec
from pracownicy
where imie like '__n%';
quit;