Dzisiaj temat miły, lekki i przyjemny. W tej lekcji kursu Oracle SQL zajmiemy się funkcjami agregującymi – czyli jak policzyć maksimum, minimum, średnią czy sumę. Pokażemy również jak policzyć liczbę rekordów w tabeli, które spełniają określonych warunek.
Przykład 1. Wyświetl maksymalną, minimalną i średnią wartość pensji.
SELECT Max(salary), Min(salary), Avg(salary) FROM employees;
Zliczanie rekordów:
- Count(*) – zlicza liczbę rekordów
- Count(nazwa_kolumny) – zlicza nieNULLowe 🙂 wartości w kolumnie
- Count(distinct nazwa_kolumny) – zlicza wartości unikalne wartości w kolumnie
Przykład 2. Wyświetl ilu jest pracowników, ile jest rekordów z wypełnioną polem manager_id oraz ile jest rekordów z unikalnymi wartościami w kolumnie manager_id.
SELECT Count(*), Count(manager_id), Count(DISTINCT manager_id) FROM employees;
Przykład 3. Wyświetl liczbę osób zatrudnionych w 2006 roku oraz maksymalną wartość ich pensji.
SELECT Count(*), Max(salary) FROM employees WHERE To_Char(hire_date,'yyyy')=2006;
Ćwiczenie 1. Czy poniższy przykład zadziała? Jeśli nie – to dlaczego?
SELECT first_name, Count(*), Max(salary) FROM employees WHERE To_Char(hire_date,'yyyy')=2006;
Przykład 4. Wyświetl różnicę między najwyższą i najniższą pensją pracowników zatrudnionych w 2007 roku oraz sumę pensji z tego okresu.
SELECT Max(salary) - Min(salary), Sum(salary) FROM employees WHERE To_Char(hire_date,'yyyy')=2007;
Co w następnej lekcji? Grupowanie 🙂 Zapraszam.