6483


Ćwiczenie 3

Cel pracy: Zapoznanie się z dostępnymi funkcjami grupującymi.

Grupowanie danych za pomocą klauzuli GROUP BY.

Dołączanie i odrzucanie grupowanych wierszy za pomocą klauzuli HAVING.

Rodzaje Funkcji Grupujących:

Składnia

Przeznaczenie

Przykład

AVG ([DISTINCT | ALL] wyrażenie)

wartość średnia wyrażeń, NULL nie jest uwzględniane

SELECT AVG(sal) „Średnia"
FROM emp

COUNT ([DISTINCT | ALL] wyrażenie)

ilość wystąpień wartości wyrażeń różnych od NULL, gwiazdka (*) w miejscu wyrażenia powoduje obliczenia ilości wszystkich wierszy łącznie z duplikatami i wartościami NULL

SELECT COUNT(comm) "prowizje" FROM emp
SELECT COUNT(*) "Wszystko"
FROM emp

MAX ([DISTINCT | ALL] wyrażenie)

maksymalna wartość wyrażenia

SELECT MAX(sal) "Max płaca"
FROM emp

MIN ([DISTINCT | ALL] wyrażenie)

minimalna wartość wyrażenia

SELECT MIN(sal) "Min płaca"
FROM emp

SUM ([DISTINCT | ALL] wyrażenie)

suma wartości wyrażeń, bez uwzględniania wartości NULL

SELECT SUM(sal) "Koszty osobowe"
FROM emp

STDDEV ([DISTINCT | ALL] wyrażenie)

odchylenie standardowe wyrażeń, bez uwzględniania wartości NULL

SELECT STDDEY(sal) "Odchylenie"
FROM emp

VARIANCE ([DISTINCT | ALL] wyrażenie)

wariancja wyrażeń, bez uwzględniania wartości NULL

SELECT VARIANCE(sal) "Wariancja"
FROM emp

Kwalifikator DISTINCT ogranicza działanie funkcji grupowych do różnych wartości argumentów.

Kwalifikator ALL jest domyślny — funkcje grupowe nie eliminują duplikatów.

Argumentami funkcji grupowych są liczby, a w przypadku funkcji MAX, MIN i COUNT także daty, znaki i ciągi znaków.

Wszystkie funkcje grupowe, za wyjątkiem COUNT(*) ignorują wartości NULL

Do podzielenia wierszy tablicy na grupy używamy klauzuli GROUP BY. Pojedynczą grupę stanowią wszystkie wiersze, dla których wartości podane w klauzuli GROUP BY są identyczne.

Do wybierania interesujących nas grup służy klauzula HAVING. W klauzuli HAVING umieszczamy warunek wyrażony za pomocą funkcji grupowej

Nie wolno używać klauzuli WHERE do odrzucania grup.

Funkcje numeryczne:

ROUND (kolumna | wyrażenie, n) - zaokrągla kolumnę, wyrażenie lub wartość do n miejsc po znaku separacji części dziesiętnej lub gdy n jest pominięte odrzucona zostanie część ułamkowa liczby; Jeśli n jest ujemne to będą zaokrąglane liczby całkowite; np. ROUND(56.837,2); wynik: 56.84

TRUNC (kolumna | wyrażenie, n) - obcina kolumnę, wyrażenie lub wartość do n miejsc po znaku separacji części dziesiętnej, gdy n jest pominięte to zostaje przyjęte 0; np. TRUNC(56.832, 2); wynik: 56.83

MOD (m,n) - zwraca resztę z dzielenia; np. MOD(1300,300); wynik: 100

Wymagany porządek klauzul jest następujący:

  1. SELECT lista wyrażeń

  2. FROM tabela

  3. WHERE warunek selekcji wierszy

  4. GROUP BY wyrażenia

  5. HAVING warunek selekcji grup

  6. ORDER BY wyrażenia

Zadania do zapytań SQL:

  1. Ile rekordów zawiera tabela EMP ?. Użyj funkcji COUNT(*).

  2. Jak wielu pracowników ma nazwisko zakończone literą „D" ?
    Utwórz dwa rozwiązania (z LIKE oraz z SUBSTR).

  3. Znajdź minimalną i maksymalna pensję(SAL) w firmie.

  4. Znajdź różnice między najwyższą i najniższą pensją

  5. Znajdź średnią i sumę pensji w firmie. Zaokrąglij wyniki do liczby całkowitej.

  6. Znajdź minimalną, maksymalną, średnią i sumę pensji w firmie.

  7. Zmodyfikuj zapytanie 6, tak aby wyświetlało minimalną i maksymalną pensję oraz średnią i sumę pensji dla każdego stanowiska(JOB)

  8. Znajdź średnią i maksymalną pensję dla każdego departamentu (DEPTNO).

  9. W zadaniu 8 ogranicz liczbę grup do tych departamentów,
    w których maksymalna płaca jest większa niż 2900.

  10. Podaj ile osób pracuje na tym samym stanowisku

  11. Podaj ile osób pracuje w każdym z departamentów

  12. Oblicz, ilu pracowników jest kierownikami (MGR).

  13. Podaj najniższe pensje wypłacane podwładnym swoich kierowników.
    Wyeliminuj grupy o minimalnych zarobkach niższych niż 1000.
    Uporządkuj według pensji.

  14. Wyświetl kody szefów (MGR) oraz płacę (SAL) najniżej zarabiającego pracownika danego szefa. Wyłączając tych, których szef nie jest znany.
    Wyłączając którąkolwiek grupę gdzie minimalna płaca jest mniejsza niż 1000.
    Posortuj wyniki wg malejącej pensji (SAL).

  15. Znajdź departamenty zatrudniające powyżej trzech pracowników



Wyszukiwarka

Podobne podstrony:
6483
praca magisterska 6483
6483
6483
6483
6483
6483
6483
6483

więcej podobnych podstron