1. MySQL COUNT funktsiooni ülevaade
MySQL-is on COUNT
funktsioon väga kasulik tööriist, millega saab tuua välja teatud veeru või tingimusele vastavate andmete ridade arvu. Selle funktsiooni abil on lihtne loendada kindlaid kirjeid andmebaasis. Näiteks saab kokku lugeda kõik read või arvutada tingimusele vastavate kirjete arvu.
COUNT()
funktsiooni põhistruktuur
Põhiline COUNT
funktsiooni kasutus on järgmine:
SELECT COUNT(*) FROM table_name;
See päring loendab kõik kirjed määratud tabelis. Kui soovid lugeda konkreetse veeru väärtusi, kasuta järgmist süntaksit:
SELECT COUNT(column_name) FROM table_name;
Selles juhul NULL
väärtused jäetakse tähelepanuta ja neid ei loendata.
Näide NULL väärtuste ignoreerimisest
Näiteks kui age
veerus on NULL
väärtusi, saab neid välistada järgmise päringuga:
SELECT COUNT(age) FROM users WHERE age IS NOT NULL;
See päring loendab ainult need age
väärtused, mis ei ole NULL.

2. COUNT funktsioon koos DISTINCT-iga
Andmebaasis on sageli korduvalt salvestatud samu väärtusi. Sellisel juhul saab DISTINCT
-i kasutada koos COUNT
funktsiooniga, et tuua välja ainult unikaalsete väärtuste arv. DISTINCT
eemaldab tulemuste hulgast duplikaadid enne loendamist.
Näide COUNT
ja DISTINCT
kasutamisest
Järgmine päring loendab name
veerus unikaalsete nimede arvu:
SELECT COUNT(DISTINCT name) FROM users;
Näiteks, kui users
tabelis esineb mitu korda “taro”, loetakse seda ainult ühe korra.
3. Loendamine koos WHERE klausliga
COUNT
funktsiooni saab kasutada koos WHERE
klausliga, et lugeda ainult teatud tingimustele vastavad read. See on kasulik, kui soovid tuua välja ainult kindlat tüüpi andmeid.
Näide tingimuslikust loendamisest
Järgmine päring loendab kasutajad, kelle vanus on vähemalt 25:
SELECT COUNT(*) FROM users WHERE age >= 25;
See päring tagastab users
tabelist ridade arvu, kus age
on 25 või rohkem.
COUNT
funktsiooni laiendatud näide
Samuti saab kasutada mitut tingimust. Näiteks loendamaks meessoost kasutajad, kelle age
on vähemalt 25:
SELECT COUNT(*) FROM users WHERE age >= 25 AND gender = 'Male';
See päring loendab ainult read, mis vastavad mõlemale tingimusele.

4. Andmete grupeerimine ja loendamine GROUP BY abil
GROUP BY
klausliga saab andmeid grupeerida ja loendada iga grupi sees. See on kasulik näiteks, kui soovid lugeda töötajate arvu osakonna kaupa.
Näide GROUP BY
ja COUNT
kasutamisest
Järgmine päring loendab töötajad osakondade kaupa:
SELECT department, COUNT(*) FROM employees GROUP BY department;
Tulemuseks tagastatakse iga osakonna töötajate arv.
5. Tingimuslik loendamine IF lause abil
COUNT
funktsiooni saab kombineerida IF
lausega, et rakendada keerukamaid tingimusi. Näiteks saab lugeda ainult need töötajad, kelle palk ületab 50,000.
Näide IF lausega
Järgmine päring loendab töötajad, kelle palk on üle 50,000:
SELECT COUNT(IF(salary > 50000, 1, NULL)) FROM employees;
See päring loendab ainult read, kus salary
> 50000.
6. COUNT funktsiooni praktilised kasutused
COUNT
funktsioon on igapäevases andmebaasi halduses väga kasulik. Näiteks saab seda kasutada kasutajate registreerimiste arvu või müügitehingute lugemiseks.
Näide 1: kasutajate registreerimiste arv
Veebisaidi haldaja saab teada registreeritud kasutajate arvu järgmise päringuga:
SELECT COUNT(*) FROM users;
See päring tagastab kõigi kasutajate arvu tabelis users
.
Näide 2: müügiandmete loendamine
Müügiandmete haldamiseks saab lugeda, mitu korda konkreetset toodet müüdi:
SELECT COUNT(*) FROM sales WHERE product_id = 123;
See päring loendab kõik kirjed, kus product_id
on 123.

7. COUNT funktsiooni probleemide lahendamine
COUNT
funktsiooni kasutamisel võib tekkida probleeme eriti NULL
või duplikaatandmete puhul. Nende vältimiseks on kasulik teada mõned lahendused.
Probleemid ja lahendused seoses NULL andmetega
Kui kasutad COUNT(column_name)
, siis NULL
väärtusi ei loendata. Kui soovid lugeda kõiki ridu, kasuta COUNT(*)
. Kui soovid loendada ainult mitte-NULL väärtusi, lisa IS NOT NULL
tingimus:
SELECT COUNT(column_name) FROM table_name WHERE column_name IS NOT NULL;