Pokazywanie postów oznaczonych etykietą COUNT. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą COUNT. Pokaż wszystkie posty

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():