Grupowanie danych: Funkcje grupujące w SQL cz. I

Funkcje grupujące to bardzo ważny element w różnego rodzaju rozbudowanych kwerendach pobierających dane z bazy. Dzięki nim możemy wykonywać różne operacje na zbiorach (wierszach) otrzymując tym samym dokładnie spersonalizowane na nasze potrzeby dane.

Fot: Beraldo Leal, CC BY 2.0.

Fot: Beraldo Leal, CC BY 2.0.

Grupowanie danych w SQL polega na łączeniu ze sobą kilku wierszy w jeden. Jednym z najprostszych przykładów na grupowanie danych jest właśnie zgrupowanie całej tabeli czyli połączenie wszystkich jej wierszy w jeden.

W SQL mamy dostępną całą gamę funkcji grupujących są to między innymi:

  • avg(),
  • count(),
  • sum(),
  • min(),
  • max(),
  • stdev(),
  • stdevp().

Na osobny temat zasługuje klauzula GROUP BY, którą opisałem w drugiej części tego artykułu.

AVG()

Funkcja avg() zwraca średnią wartość liczb grupy bądź tabeli z danej kolumny podanej jako argument.

Przykład:

Uwaga: Funkcja ta przyjmuje tylko liczby, bądź kolumny z „liczbowym” typem danych.

COUNT()

Funkcja count() jak wskazuje jej nazwa zwraca liczbę całkowitą przekazanych w postaci argumentu wartości. Funkcje tą najczęściej wykorzystuje się do sprawdzania liczby wierszy w danej grupie.

Przykładowe zapytanie zliczające liczbę wierszy w tabeli tab1:

lub:

Można również wyeliminować zliczanie powtarzających się danych za pośrednictwem słowa kluczowego DISTINCT:

Oczywiście należy pamiętać, że symbolu „*” nie można poprzedzić słowem kluczowym DISTINCT gdyż funkcja COUNT() wywołana dla argumentu „*” zwraca liczbę wszystkich wierszy grupy bądź tabeli również z tymi pustymi i powtórzonymi.

SUM()

Funkcja sum() zwraca sumę podanych wartości:

MIN()

Funkcja min() jak sama nazwa wskazuje zwraca najmniejszą wartość. Jako argument może przyjmować  dane typu „liczbowego”, daty i czasu, a nawet tekstowe. Ważne jest to, że ciąg znaków porównywany jest alfabetycznie.

Przykład:

MAX()

Funkcja max() jak sama nazwa wskazuje zwraca największą wartość. Jako argument może przyjmować  dane typu „liczbowego”, daty i czasu, a nawet tekstowe. Ważne jest to, że ciąg znaków porównywany jest alfabetycznie.

Przykład:

STDEV()

stdev() zwraca odchylenie standardowe podanych jako argument wartości liczbowych.

Przykład:

STDEVP()

stedevp() zwraca odchylenie standardowe próbki podanej jako argument:

Przykład:

, , , , , , , , , , ,