poniedziałek, 27 marca 2017

Lekcja 14. Funkcje agregujące.

Funkcje prezentowane do tej pory operują na pojedynczych wierszach i zwracają jeden wiersz wyników dla każdego wiersza wejściowego. W tym podrozdziale poznamy funkcje agregujące, które operują na grupie wierszy i zwracają jeden wiersz wyników. Funkcje agregujące są czasem nazywane grupującymi, ponieważ operują na grupach wierszy.

Funkcja
Opis
AVG(x)
Zwraca średnią wartość x
COUNT(x)
Zwraca liczbę wierszy zawierających x, zwróconych przez zapytanie
LIST(x)
Zwraca ciąg oddzielonych separatorem wartości x
MAX(x)
Zwraca maksymalną wartość x
MIN(x)
Zwraca minimalną wartość x
SUM(x)
Zwraca sumę x

Najważniejsze właściwości funkcji agregujących:

  • Funkcje agregujące mogą być używane z dowolnymi, prawidłowymi wyrażeniami. Na przykład funkcje COUNT(), MAX() I MIN() mogą być używane z liczbami napisami i datami.
  • Wartość NULL jest ignorowana przez funkcje agregujące, ponieważ wskazuje, że wartość jest nieznana i z tego powodu nie może zostać użyta w funkcji.
  • Wraz z funkcją agregującą można użyć słowa kluczowego DISTINCT, aby wykluczyć z obliczeń powtarzające się wpisy.

AVG
Funkcja AVG(x) oblicza średnią wartość x. Poniższe zapytanie zwraca średnią zarobków pracowników. Należy zwrócić uwagę, że do funkcji AVG() jest przesyłana kolumna salary z tabeli employee:



Funkcje agregujące mogą być używane z dowolnymi prawidłowymi wyrażeniami. Na przykład poniższe zapytanie przesyła do funkcji AVG() wyrażenie salary + 10000. Na skutek tego do wartości salary w każdym wierszu jest dodawane 10000, a następnie jest obliczana średnia wyników:


W celu wyłączenia z obliczeń identycznych wartości można użyć słowa kluczowego DISTINCT. Na przykład w poniższym zapytaniu użyto go do wyłączenia identycznych wartości z kolumny salary podczas obliczania średniej za pomocą funkcji AVG():


Należy zauważyć, że w tym przypadku średnia jest nieco wyższa niż wartość zwrócona przez pierwsze zapytanie prezentowane na samym początku. Jest tak dlatego ponieważ wartości 111262.2 , 69482.63 oraz 35000,00 występują w kolumnie salary dwukrotnie. Dublujące się wartości uznawane są za duplikat i wyłączone są z obliczeń wykonywanych przez funkcję AVG().

COUNT
Funkcja COUNT(x) oblicza liczbę wierszy zwróconych przez zapytanie. Poniższe zapytanie zwraca liczbę wierszy w tabeli employee, korzystając z funkcji COUNT():



LIST
Funkcja LIST(x)
zwraca ciąg oddzielonych przecinkiem wartości x. Poniższe zapytanie zwraca nazwy państw pochodzące z kolumny job_country z tabeli employee, korzystając z funkcji LIST():


Opcjonalnie można przesłać opcjonalny parametr określający separator:



MAX I MIX
Funkcja MAX(x) i MIN(x) zwracają maksymalną i minimalną wartość x. Poniższe zapytanie zwraca maksymalną i minimalną wartość z kolumny salary tabeli employee, korzystając z funkcji MAX() i MIN():
 


Funkcje MAX() i MIN() mogą być używane ze wszystkimi typami danych, włączenie z napisami i datami. Gdy używamy MAX() z napisami, są one porządkowane alfabetycznie, z „maksymalnym” napisem umieszczonym na dole listy i „minimalnym” napisem umieszonym na górze listy. Poniższy przykład pobiera „minimalny” i „maksymalny” napis z kolumny first_name tabeli employee, korzystając MAX() i MIN():


W przypadku dat „maksymalną” datą jest najpóźniejszy moment, „minimalną” – najwcześniejszy. Poniższe zapytanie pobiera maksymalną i minimalną wartość z kolumny hire_date tabeli employee, korzystając z funkcji MAX() i MIN():


SUM
Funkcja SUM(x) dodaje wszystkie wartości w x i zwraca wynik. Poniższe zapytanie zwraca sumę z kolumny salary tabeli employee, korzystając z funkcji SUM():


Brak komentarzy:

Prześlij komentarz