Funkcija MySQL count() se uporablja za vrnitev števila izrazov. Omogoča nam, da preštejemo vse vrstice ali samo nekatere vrstice tabele, ki ustrezajo podanemu pogoju. Je vrsta agregatne funkcije, katere povratni tip je BIGINT. Ta funkcija vrne 0, če ne najde nobene ujemajoče se vrstice.
Funkcijo štetja lahko uporabimo v treh oblikah, ki so razložene spodaj:
- štetje (*)
- Štetje (izraz)
- Število (različno)
Razpravljajmo o vsakem podrobneje.
Funkcija COUNT(*): Ta funkcija uporablja stavek SELECT za vrnitev števila vrstic v nizu rezultatov. Nabor rezultatov vsebuje vse neničelne, ničelne in podvojene vrstice.
COUNT(izraz) funkcija: Ta funkcija vrne niz rezultatov, ne da bi vsebovala ničelne vrstice kot rezultat izraza.
COUNT(različni izraz) funkcija: Ta funkcija vrne število različnih vrstic, ne da bi vsebovale vrednosti NULL kot rezultat izraza.
Sintaksa
Spodaj je sintaksa funkcije COUNT():
SELECT COUNT (aggregate_expression) FROM table_name [WHERE conditions];
Razlaga parametrov
agregatni_izraz: Podaja stolpec ali izraz, katerega vrednosti NON-NULL bodo preštete.
osnovni pas proti širokopasovnemu
ime_tabele: Določa tabele, iz katerih želite pridobiti zapise. V stavku FROM mora biti navedena vsaj ena tabela.
KJE pogoji: To ni obvezno. Določa pogoje, ki morajo biti izpolnjeni, da so zapisi izbrani.
Primer funkcije MySQL count().
Razmislite o tabeli z imenom 'zaposleni', ki vsebuje naslednje podatke.
Razumejmo, kako delujejo funkcije count(). MySQL .
Primer1
Izvedite naslednjo poizvedbo, ki uporablja funkcijo COUNT(expression) za izračun skupnega števila imen zaposlenih, ki so na voljo v tabeli:
pretvori char v int java
mysql> SELECT COUNT(emp_name) FROM employees;
Izhod:
Primer2
Izvedite naslednji stavek, ki vrne vse vrstice iz tabele zaposlenih in stavek WHERE podaja vrstice, katerih vrednost v stolpcu emp_age je večja od 32:
mysql> SELECT COUNT(*) FROM employees WHERE emp_age>32;
Izhod:
Primer3
Ta stavek uporablja funkcijo COUNT(različni izraz), ki prešteje neničelne in ločene vrstice v stolpcu emp_age:
mysql> SELECT COUNT(DISTINCT emp_age) FROM employees;
Izhod:
Funkcija MySQL Count() s klavzulo GROUP BY
Uporabimo lahko tudi funkcijo count() s klavzulo GROUP BY, ki vrne število elementov v vsaki skupini. Naslednji stavek na primer vrne število zaposlenih v vsakem mestu:
mysql> SELECT emp_name, city, COUNT(*) FROM employees GROUP BY city;
Po uspešni izvedbi bomo dobili naslednji rezultat:
Funkcija MySQL Count() s klavzulo HAVING in ORDER BY
Oglejmo si še eno klavzulo, ki uporablja klavzulo ORDER BY in Having s funkcijo count(). Izvedite naslednji stavek, ki poda ime zaposlenemu, ki ima vsaj dve enaki starosti, in ju razvrsti glede na rezultat štetja:
ukaz za zagon linuxa
mysql> SELECT emp_name, emp_age, COUNT(*) FROM employees GROUP BY emp_age HAVING COUNT(*)>=2 ORDER BY COUNT(*);
Ta izjava bo dala rezultat, kot je prikazano spodaj: