Inne działy

 

 

SQL funkcje agregujące

W SQL dostępnych jest kilka funkcji agregujących działających na grupie wartości zwracanych przez zapytanie a nie na pojedynczej wartości pola.

Na przykład możemy w tabeli policzyć liczbę wierszy spełniających określone kryteria lub można wyliczyć wartość średnia dla wszystkich wartości z wybranej kolumny.

Funkcje te działają na wszystkich wierszach w tabeli, na pewnej grupie wierszy wybranej klauzula WHERE lub na grupach danych wybranych klauzula GROUP BY

 

Funkcja COUNT(nazwa_kolumny)

Funkcja ta zlicza ilość wierszy w zapytaniu.

Jeżeli chcemy znać liczbę wierszy zwróconych przez zapytanie, najprościej użyć funkcji w postaci  COUNT(*)   (gwiazdka - wszystkie kolumny tabeli)

Są tego dwa powody:
– po pierwsze pozwalamy optymalizatorowi bazy danych wybrać kolumnę do wykonania obliczeń, co czasem nieznacznie podnosi wydajność zapytania
– po drugie, nie musimy się martwic o wartości NULL zawarte w kolumnie oraz o to, czy kolumna o podanej nazwie w ogóle istnieje

Funkcja COUNT(nazwa_kolumny) i wartosci NULL
- Funkcja w postaci  COUNT(nazwa_kolumny) nie uwzględnia pól z wartościami NULL
- Użycie funkcji w postaci  COUNT(*)  zlicza wszystkie wiersze bez względu na zawartość.

Fakt, ze wiersze z wartością NULL nie są zliczane, może być przydatny, gdy wartość NULL ma jakieś szczególne znaczenie, np. brak ustalonej pensji.

Postać zapytania z uwzględnieniem wartości NULL w kolumnie  Pensja -ile osób z Gdańska pracuje w firmie:

SELECT COUNT (*)
FROM NAZWISKA      
WHERE  Miasto = 'Gdansk';

Postać zapytania – zliczanie wg kolumny  Pensja  bez wartości NULL, ze zmiana nazwy pola wyniku na LICZBA:

SELECT COUNT( Pensja )   AS LICZBA
FROM NAZWISKA    
WHERE Miasto = 'Gdansk';

 

Funkcje SUM(nazwa_kolumny) i AVG(nazwa_kolumny)

 Funkcja SUM() dodaje wszystkie wartości i zwraca pojedynczy wynik, a funkcja AVG() wylicza wartość średnią dla grupy wartości.
W przeciwieństwie do funkcji COUNT(), która działa dla wszystkich typów danych, funkcje SUM() i AVG() działają tylko dla argumentów liczbowych.

W przypadku funkcji  SUM() i  AVG() wartości NULL są ignorowane (nie są uwzględniane w obliczeniach)
Obie funkcje mogą być użyte z operatorem  DISTINCT - jeżeli go użyjemy to obliczenia są przeprowadzane tylko dla wartości unikalnych.

 Postać zapytania o sumę do wypłaty:

SELECT SUM(Pensja) AS DO_WYPLATY
FROM NAZWISKA;  

Postać zapytania o średnią pensje wszystkich pracowników:

SELECT AVG(Pensja) AS SREDNIA
FROM NAZWISKA; 

Postać zapytania o średnią dla pracowników pracujących poza Trójmiastem:

SELECT AVG(Pensja) AS SREDNIA
FROM NAZWISKA  Wynik zapytania
WHERE Miasto  NOT IN  ('Gdańsk','Sopot','Gdynia');

 

Funkcje MIN(nazwa_kolumny) i MAX(nazwa_kolumny)

Służa do znajdowania wartości najmniejszej i największej w zbiorze wartości.


Obie funkcje mogą być użyte dla rożnych typów danych.


Funkcja  MAX() znajduje największy łańcuch danych (zgodnie z regułami porównywania łańcuchów) najnowsza datę (lub najodleglejsza w przyszłości) oraz największą liczbę w zestawieniu.


Funkcja  MIN() znajduje odpowiednio wartosci najmniejsze


Wartość NULL traktowana jest jako nieokreślona i nie można jej porównywać z innymi (wartości te są  ignorowane).


Zarówno funkcja MAX jak i MIN mogą być stosowane z operatorem DISTINCT , ale nie ma to większego znaczenia, gdyż zwracają i tak tylko jedną wartość z zestawienia.

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.