Kurs Oracle SQL online. Funkcje agregujące

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.

This entry was posted in Oracle, Oracle SQL, Oracle SQL Podstawy, SQL. Bookmark the permalink.

4 Responses to Kurs Oracle SQL online. Funkcje agregujące

  1. ROZMOWNA says:

    A ten przykład dlaczego nie działa?
    SELECT first_name, Count(*), Max(salary) FROM employees WHERE To_Char(hire_date,’yyyy’)=2006;

    Proszę prostym językiem bo jestem naprawdę początkująca.

    • Kangar00 says:

      Przykład nie zadziała prawdopodobnie z tego powodu, że chcemy wyświetlić zapytanie o imiona pracowników, które zawiera wiele dopasowań i do tego funkcje count i max, które zwracają po jednym argumencie.

  2. Kaza says:

    W opisie zliczania rekordów – Count(distinct nazwa_kolumny) – prawdopodobnie przez pomyłkę użyłeś 2 razy zdania wartości (zlicza wartości unikalne wartości w kolumnie)

  3. pomocny says:

    może warto dodać group by:)

Leave a Reply

Your email address will not be published.