Blog JSystems - z miłości do programowania

Szukaj

Funkcje agregujące w MS SQL Server

Funkcje agregujące, to takie funkcje, które zwracają jedną wartość wyliczoną na podstawie wielu wierszy. Wszystkie funkcje grupowe ignorują wiersze zawierające wartość null w kolumnie, na której działają. Opcjonalnie do każdej funkcji można dodać modyfikator distinct co będzie skutkowało przeliczeniem nie uwzględniającym wartości, które się powtórzą.


AVG


avg (wyrażenie) – funkcja oblicza wartość średnią wyrażenia dla wszystkich wierszy.


select avg(ListPrice) from SalesLT.Product;


58.jpg (700×169)


Wyświetlona została średnia cena produktu.


select avg(distinct ListPrice) from SalesLT.Product;


59.jpg (833×172)


Wyświetlona została średnia cena produktu, nie uwzględniając powtórzonych wartości.


SUM


Funkcja oblicza sumę wartości wyrażeń dla wszystkich wierszy.


select sum(distinct ListPrice) from SalesLT.Product;


60.jpg (706×171)


Wyświetlona została suma cen wszystkich produktów.


select sum(distinct ListPrice) from SalesLT.Product;


61.jpg (837×170)


Wyświetlona została suma cen wszystkich produktów, nie uwzględniając powtórzonych wartości.


MIN


Funkcja oblicza minimalną wartość wyrażenia, wartość wyrażenia może być liczbą, ciągiem znaków lub datą. W przypadku daty zwraca najwcześniejszą, w przypadku tekstu, pierwszy ciąg uszeregowany wg alfabetu.


select min(ListPrice) from SalesLT.Product;


62.jpg (700×172)


Wyświetlona najniższa cena produktu.


select min(Name) from SalesLT.Product;


63.jpg (628×172)


Wyświetlona „najniższa nazwa” produktu (względem porządku alfabetycznego).


select min(SellStartDate) from SalesLT.Product;


64.jpg (757×174)


Wyświetlona najwcześniejsza data sprzedaży produktu.


MAX


Funkcja oblicza maksymalną wartość wyrażenia, wartość wyrażenia może być liczbą, ciągiem znaków lub datą. W przypadku daty zwraca najpóźniejszą, w przypadku tekstu, ostatni ciąg uszeregowany wg alfabetu.


select max(ListPrice) from SalesLT.Product;


65.jpg (700×171)


Wyświetlona najwyższa cena produktu.


select max(Name) from SalesLT.Product;


66.jpg (626×173)


Wyświetlona „najwyższa nazwa” produktu (względem porządku alfabetycznego).


select max(SellStartDate) from SalesLT.Product;


67.jpg (759×172)


Wyświetlona najstarsza data sprzedaży produktu.


COUNT


count (wyrażenie) - funkcja zwraca ilość wierszy dla których wyrażenie jest różne od null. Zamiast wpisywać nazwę kolumny, można uzyć znaku "*" - wtedy zostanie zliczona liczba wszystkich wierszy w tabeli.


select count(Name) from SalesLT.Product;


68.jpg (655×172)


Wyświetlona została ilość nazw produktów (podliczenie ilości wierszy dla kolumny Name).


select count(*) from SalesLT.Product;


69.jpg (614×175)


Wyświetlona została ilość wierszy  (podliczenie ilości wierszy dla całej tabeli SalesLT.Product).


W przypadku funkcji agregujących nazwy kolumn również tracą swoją nazwę, dlatego i tu najlepiej użyć aliasów, by później wiedzieć co dana kolumna przedstawia.


select count(*) IlośćWierszy from SalesLT.Product;


70.jpg (784×184)


Wyświetlona została ilość wierszy  (podliczenie ilości wierszy dla całej tabeli SalesLT.Product) z odpowiednim aliasem dla tej kolumny.


Funkcji agregujących możemy używać także kilku na raz w jednym zapytaniu.


71.jpg (889×170)


W jednym zapytaniu wyświetlone zostały wartości: średnia cena produktu, suma cen produktów, minimalna cena produktu, maksymalna cena produktu oraz ilość wszystkich produktów. Kolumnom zostały nadane odpowiednie aliasy.

Przyjdź do nas na szkolenie z baz danych SQL Server! Mamy szereg szkoleń w ofercie: SQL, T-SQL, tuning, administracja i wiele innych. Sprawdź dostępne szkolenia SQL Server
Zapisz się do newslettera aby otrzymywać najnowsze świeżynki pojawiające się na blogu! Zapisz się do newslettera