Blog JSystems - uwalniamy wiedzę!

Szukaj

Funkcje agregujące, w skrócie

Podsumowanie danych z grupowaniem:

SELECT dzial, COUNT(*), AVG(pensja)
FROM pracownicy
GROUP BY dzial;

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.

Baner szkolenia Kompleksowe SQL w Microsoft SQL Server w JSystems, terminy gwarantowane

Szkolenie Kompleksowe SQL w Microsoft SQL Server →

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Czym są funkcje agregujące w SQL?
To funkcje, które zwracają jedną wartość wyliczoną na podstawie wielu wierszy, na przykład sumę, średnią czy liczbę wierszy. Zwykle stosuje się je z grupowaniem GROUP BY, aby podsumować dane w ramach każdej grupy.
Czy funkcje agregujące uwzględniają wartości null?
Nie, wszystkie funkcje grupowe ignorują wiersze zawierające wartość null w kolumnie, na której działają. Wyjątkiem jest COUNT ze znakiem gwiazdki, który zlicza wszystkie wiersze tabeli niezależnie od zawartości kolumn.
Do czego służy modyfikator DISTINCT w funkcji agregującej?
DISTINCT sprawia, że przeliczenie pomija wartości, które się powtarzają. Na przykład AVG z DISTINCT policzy średnią tylko z unikalnych wartości, a SUM z DISTINCT zsumuje wyłącznie niepowtarzające się kwoty.
Jak działają MIN i MAX na tekstach i datach?
Dla liczb zwracają wartość najmniejszą i największą. Dla dat MIN daje najwcześniejszą, a MAX najpóźniejszą. Dla tekstu MIN zwraca pierwszy ciąg według porządku alfabetycznego, a MAX ostatni.
Dlaczego warto nadawać aliasy kolumnom z funkcji agregujących?
Ponieważ kolumny wyliczone przez funkcje agregujące tracą swoją pierwotną nazwę. Nadanie aliasu pozwala później łatwo rozpoznać, co przedstawia dana kolumna, zwłaszcza gdy w jednym zapytaniu używamy kilku funkcji naraz.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...