A�wiczenie 2

Funkcje agregujA�ce

Funkcje agregujA� ce pozwalajA� na dokonanie pewnych wyliczeA� w ciele zapytania

AVG – wartoA�A� A�rednia z kolumny

SUM – suma wartoA�ci z kolumny

MAX – maksymalna wartoA�ci z kolumny

MIN – minimum kolumny

COUNT – zlicz iloA�A� rekordA?w

PrzykA�ad

SELECT COUNT(osoba.imie) FROM osoba WHERE osoba.imie='Roman'

policz RomanA?w w tabeli osoba

SELECT SUM(zatrudnienie.pensja) AS [Wydatki na pensje] FROM zatrudnienie

suma wydatkA?w na pensje

Grupowanie

Grupowanie wykorzystujemy razem z funkcjami segregujA�cymi

GROUP BY – grupowanie

PrzykA�ad

SELECT zatrudnienie.nr_dzialu, SUM(zatrudnienie.pensja) AS [Wydatki pensji na dziaA�] FROM zatrudnienie GROUP BY zatrudnienie.nr_dzialu

Operator IS NULL sA�uA?y do wyszukiwania wartoA�ci NULL

SELECT zatrudnienie.nr_osoby FROM zatrudnienie WHERE zatrudnienie.data_zwolnienia IS NULL

Zapytania zA�oA?one

SA� to zapytania w ktA?rych wynik jednego z zapytaA� staje siA� A?rA?dA�em danych do kolejnego zapytania.

PrzykA�ad

SELECT zatrudnienie.nr_osoby FROM zatrudnienie WHERE zatrudnienie.pensja > (SELECT AVG(zatrudnienie.pensja) FROM zatrudnienie)

numery osA?b zarabiajA�cych powyA?ej A�redniej

klauzula HAVING

Do wybierania interesujA�cych nas grup sA�uA?y klauzula HAVING. W klauzuli HAVING umieszczamy warunek wyraA?ony za pomocA� funkcji grupowej.

SELECT zatrudnienie.nr_stanowiska, AVG(zatrudnienie.pensja) FROM zatrudnienie GROUP BY zatrudnienie.nr_stanowiska HAVING MAX(zatrudnienie.pensja)>2000;

Zadania

Baza WSTEP

wstep

  1. ObliczyA� maksymalnA� pensje z tabeli zatrudnienie
  2. ObliczyA� minimalnA� pensje z tabeli zatrudnienie
  3. ObliczyA� maksymalnA� pensje dla poszczegA?lnych nr_stanowiska z tabeli zatrudnienie
  4. ObliczyA� mininalnA� pensje dla poszczegA?lnych nr_dziaA�u z tabeli zatrudnienie
  5. ObliczyA� sumA� wydatkA?w na pensje z tabeli zatrudnienie
  6. ObliczyA� sumA� wydatkA?w na pensje dla poszczegA?lnych nr_stanowiska z tabeli zatrudnienie
  7. ObliczyA� A�redniA� pensje dla nr_stanowiska=2 z tabeli zatrudnienie
  8. ObliczyA� A�redniA� pensje na nr_stanowiska
  9. PoliczyA� ile nr_osoby przypada na nr_dziaA�u=4 w tabeli zatrudnienie
  10. PoliczyA� ile nr_osoby przypada na nr_dziaA�u w tabeli zatrudnienie
  11. PoliczyA� ile nr_osoby przypada na nr_stanowiska w tabeli zatrudnienie
  12. PoliczyA� A�redniA� pensje na nr_dziaA�u w tabeli zatrudnienie
  13. PoliczyA� A�redniA� pensje na nr_stanowiska w tabeli zatrudnienie
  14. PoliczyA� A�redniA� pensje na stanowisku nr_stanowiska=3
  15. WybraA� nr_osoby z tabeli zatrudnienie o pensji powyA?ej A�redniej w nr_stanowiska=3
  16. WybraA� nr_osoby wraz z numerem stanowiska posortowane po nr_stanowiska rosnA�co
  17. WybraA� nr_osoby wraz z numerem stanowiska posortowane po nr_stanowiska malejA�co
  18. Ile osA?b przypada na jeden nr_powiatu w tabeli osoba
  19. Ile osA?b przypada na jeden nr_powiatu w tabeli osoba posortowane wg kolumny nr_powiatu
  20. ObliczyA� sumA� wydatkA?w na pensje wiA�kszych od A�redniej dla poszczegA?lnych nr_stanowiska z tabeli zatrudnienie