Tehnika Krstarice > Programiranje > SQL - Funkcija COUNT

SQL - Funkcija COUNT

31.12.2001.

SQL poseduje ugrađenu funkciju za prebrojavanje podataka (slogova, n-torki) unutar baza podataka. Ova funkcija je funkcija COUNT, koja kao rezultat vraća broj slogova koji zadovoljavaju određeni uslov. Kao argumente ove funkcije možete koristiti i džoker znake, gde se prvenstveno misli na zvezdicu ("*"), te ako je upotrebite samostalno, funkcija će vratiti sve slogove koji zadovolje uslov naredbe SELECT. Sintaksa funkcije COUNT je sledeća:

SELECT COUNT(naziv_kolone)
FROM naziv_tabele;

Radi izvođenja primera, upotrebićemo sledeću tabelu "Radnik":

Ime                          Starost
-----------------------------------
Hadzic, Olga                   34
Skoro, Milan                   45
Petric, Karlo                  19

Ako biste zadali upit sa funkcijom COUNT radi prebrojavanja svih radnika (upotrebićemo zvezdicu "*"), onda bi to ovako izgledalo:

SELECT COUNT(*)
FROM Radnik

Rezultat ovog upita bi bio "3". A ako biste recimo želeli sa prebrojimo sve radnike koji su stariji od 20 godina, upit bi mogao ovako da izgleda:

SELECT COUNT(*)
FROM Radnik
WHERE Starost > 20;

Rezultat koji će vratiti upit je "2". Treba znati i to da funkcija vraća samo broj onih slogova koji nemaju Null vrednost u navedenoj koloni (atributu). Postavimo da tabela-primer sada izgleda na drugačiji način:

Ime                          Starost
-----------------------------------
Hadzic, Olga                   34
Skoro, Milan                   45
Petric, Karlo

Sada će upit:

SELECT COUNT(*)
FROM Radnik;

vratiti samo broj radnika koji u koloni "Starost" imaju bar neku vrednost - rezultat će biti "2". Zato je funkcija COUNT dobrodošla za potrebu pronalaženja slogova sa kolonama koje nemaju vrednosti.

Pored obične funkcije COUNT, možete kreirati i upite koji će sa ovom funkcijom upotrebljavati i ključnu reč DISTINCT, a, radi prebrojavanja različitih rezultata. Sintaksa ovakvog upita je sledeća:

SELECT DISTINCT COUNT(kolona(e))
FROM tabela;

Radi primera, kreiraćemo tabelu narudžbine, koja poseduje sledeće slogove:

Firma      Br_narudz
---------------------------
Mega           3412
Kovac          2347
Trio           2328
Kovac          9998
---------------------------

"Obični" upit izgledao bi ovako:

SELECT COUNT(Firma)
FROM Narudzbe;

Rezultat upita bi bio - "4", prebrojale bi se sve firme u tabeli. A ako biste sada postavili sledeći upit:

SELECT DISTINCT COUNT(Firma)
FROM Narudzbe;

Rezultat upita bi bio "3", jer će se prebrojati sve različite firme u tabeli, tj. neće se uzeti u obzir slogovi sa nazivima koji se ponavljaju. Inače, performanse izvođenja ove funkcije u radu sa velikim tabelama možete poboljšati ukoliko indeksirate kolone po kojima se vrši prebrojavanje.

Preporučite ovaj članak

4.67 (glasova: 3)