Prekomjernost podataka događa se iz puno razloga. Nekoliko složenih zadataka s kojima biste se trebali nositi tijekom rada sa sustavima baza podataka pokušava otkriti dvostruke vrijednosti. U tu svrhu koristit ćemo zbirnu metodu COUNT (). Metoda COUNT () vraća zbroj redaka koji se nalaze u određenoj tablici. Funkcija COUNT () omogućuje vam zbrajanje svih redaka ili samo redaka koji odgovaraju definiranom stanju. U ovom ćete vodiču upoznati kako identificirati dvostruke vrijednosti za jedan ili možda više MySQL stupaca pomoću COUNT (). Metoda COUNT () ima sljedeće tri vrste:
- RAČUNATI(*)
- COUNT (izraz)
- COUNT (DISTINCT izraz)
Svakako utvrdite da li je MySQL instaliran na vašem sustavu. Otvorite školjku klijenta naredbenog retka MySQL i unesite lozinku da biste nastavili. Pogledat ćemo neke primjere za brojanje odgovarajućih vrijednosti pomoću metode COUNT ().
U našoj shemi "podaci" imamo tablicu "društveno". Provjerimo njegov zapis putem sljedećeg upita.
>> ODABERI * IZ podataka.socijalni;
Brojanje MySQL-a (*)
Metoda COUNT (*) koristi se za brojanje broja redaka koji se nalaze u tablici ili broja redaka prema zadanom stanju. Da biste provjerili ukupan broj redaka u tablici, 'društveno', isprobajte upit u nastavku. U tablici imamo ukupno 15 redaka prema rezultatu.
>> ODABERI BROJ (*) IZ podataka.socijalni;
Bacite pogled na metodu COUNT (*) dok definirate neke uvjete. Moramo dohvatiti broj redaka u kojima je korisničko ime isto kao 'Mustafa'. Vidite da imamo samo 4 zapisa za ovo određeno ime.
>> ODABERI BROJ (*) IZ podataka.društveni WHERE Korisnik = 'Mustafa';
Da biste dokupili ukupan zbroj redaka na kojima je web mjesto korisnika 'Instagram', isprobajte donji upit. Tablica 'društvena' ima samo 4 zapisa za web stranicu 'Instagram'.
>> ODABERI BROJ (*) IZ podataka.društvena WHERE Web stranica = 'Instagram';
Da biste dohvatili ukupan broj redaka u kojima je 'Starost' veća od 18, slijedi:
>> ODABERI BROJ (*) IZ podataka.društveni WHERE Dob> 18;
Dohvatimo podatke stupaca 'Korisnik' i 'Web stranica' iz tablice, gdje Korisničko ime započinje s abecedom 'M'. Isprobajte donju uputu o ljusci.
>> ODABERITE korisnika, web stranicu IZ podataka.društveni WHERE Korisnik poput 'M%';
MySQL COUNT (izraz)
U MySQL-u metoda COUNT (izraz) koristi se samo kada želite brojati ne-null vrijednosti stupca 'izraz'. 'Izraz' bi bio naziv bilo kojeg stupca. Uzmimo za to jednostavan primjer. Brojali smo samo ne-nulove vrijednosti stupca "Web stranica", koji je povezan sa stupcem "Dob" koji ima vrijednost koja je jednaka "25". Vidjeti! Imamo samo 4 ne-null zapisa za korisnike koji imaju '25 godina' i koji koriste web stranice.
>> ODABERITE BROJ (web stranica) IZ podataka.društveni WHERE Dob = 25;
MySQL COUNT (izraz DISTNCT)
U MySQL-u metoda COUNT (DISTINCT izraz) koristi se za zbrajanje ne-null vrijednosti i različitih vrijednosti stupca 'izraz'. Za brojanje različitog broja ne-null vrijednosti u stupcu 'Age' koristili smo upit u nastavku. Pronaći ćete 6 nevaljanih i različitih zapisa stupca 'Dob' iz tablice 'društveno'. To znači da imamo ukupno 6 ljudi različite dobi.
>> ODABERI BROJ (RAZLIČITO doba) IZ podataka.socijalni;
MySQL COUNT (AKO (izraz))
Za veći naglasak, trebali biste spojiti COUNT () s funkcijama kontrole protoka. Za početak, za dio izraza koji se koristi u metodi COUNT (), možete koristiti funkciju IF (). To bi moglo biti vrlo korisno kako bi se osigurala brza raščlamba podataka unutar baze podataka. Brojat ćemo broj redaka s različitim dobnim uvjetima i dijeliti ih u tri različita stupca, što se može reći kao kategorije. Prvo će COUNT (IF) brojati retke starije od 20 godina i spremiti taj broj u novi stupac pod nazivom "Tinejdžerski". Drugi COUNT (IF) broji retke starosti između 20 i 30 dok ih sprema u stupac "Young". Treće, posljednji broji retke starije od 30 godina i sprema se u stupac "Zreli". Imamo 5 tinejdžera, 9 mladih i samo 1 zrelu osobu.
>> ODABERI BROJ (AKO (Dob < 20,1,NULL)) 'Teenage', COUNT(IF(Age BETWEEN 20 AND 30,1,NULL)) 'Young', COUNT(IF(Age > 30,1, NULL)) 'Zrelo' IZ podataka.socijalni;
MySQL COUNT (*) s klauzulom GROUP BY
Izraz GROUP BY je SQL naredba koja se koristi za grupne retke s istim vrijednostima. Vraća ukupan broj vrijednosti koje prebivaju u svakoj skupini. Na primjer, ako želite zasebno provjeriti broj svakog korisnika, morate definirati stupac 'Korisnik' klauzulom GROUP BY tijekom brojanja zapisa za svakog korisnika s COUNT (*).
>> ODABERI korisnika, COUNT (*) IZ podataka.društveni GROUP BY User;
Možete odabrati više od dva stupca dok izvodite brojanje redaka zajedno s klauzulom GROUP BY, kako slijedi.
>> ODABERITE korisnika, dob, web stranicu, COUNT (*) IZ podataka.društveni GROUP BY Web stranica;
Ako želimo brojati retke dok koristimo klauzulu WHERE koja u sebi sadrži neke uvjete uz GROUP BY i COUNT (*), to također možete učiniti. Upit u nastavku dohvaćat će i brojati zapise stupaca: "Korisnik", "Web stranica" i "Dob", gdje je vrijednost web stranice samo "Instagram" i "Snapchat". Vidite da imamo samo 1 zapis za obje web stranice za različite korisnike.
>> ODABERITE korisnika, web stranicu, dob, COUNT (*) IZ podataka.društveni WHERE Web mjesto = 'Instagram' Ili Web mjesto = 'Snapchat' GRUPA PO Web mjestu, dob;
MySQL COUNT (*) s GROUP BY i ORDER BY klauzulom
Pokušajmo klauzule GROUP BY i ORDER BY zajedno s metodom COUNT (). Dohvatimo i prebrojimo retke tablice 'društveno', dok poredavamo podatke u opadajućem redoslijedu pomoću ovog upita:
>> ODABERITE korisnika, web stranicu, dob, COUNT (*) IZ podataka.društveni GRUPA PO GODINI REDOSLIJED PO BROJ (*) DESC;
Upit naveden u nastavku prvo će brojati retke, a zatim prikazati jedine zapise koji imaju COUNT veći od 2 u rastućem redoslijedu.
>> ODABERITE korisnika, dob, COUNT (*) IZ podataka.društveni GRUPA PO DOBI IMAJUĆI BROJ (*)> 2 RED PO BROJU (*) ASC;
Zaključak
Prošli smo kroz sve moguće metode za brojanje odgovarajućih ili dupliciranih zapisa koristeći metodu COUNT () s različitim drugim klauzulama.