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.
Pratite Krstaricu na www.krstarica.com