MySQL Count podudara zapise s COUNT

Mysql Count Matching Records With Count



Do viška podataka dolazi iz mnogo razloga. Nekoliko kompliciranih zadataka s kojima biste se trebali nositi tijekom rada sa sustavima baza podataka pokušava otkriti dvostruke vrijednosti. U tu ćemo svrhu koristiti agregatnu metodu COUNT (). Metoda COUNT () vraća zbroj redaka koji se nalaze u određenoj tablici. Funkcija COUNT () dopušta vam da zbrojite sve retke ili samo retke koji odgovaraju definiranom uvjetu. U ovom vodiču ćete saznati kako identificirati dvostruke vrijednosti za jedan ili možda više stupaca MySQL pomoću COUNT (). Metoda COUNT () ima sljedeće tri vrste:

  • RAČUNATI(*)
  • COUNT (izraz)
  • COUNT (DISTINCT izraz)

Utvrdite da imate instaliran MySQL na vašem sustavu. Otvorite klijentsku ljusku naredbenog retka MySQL i unesite lozinku za nastavak. Pogledat ćemo neke primjere za brojanje odgovarajućih vrijednosti pomoću metode COUNT ().









Imamo tablicu 'društvena' u shemi 'podaci'. Provjerimo njegov zapis putem sljedećeg upita.



>> ODABERI * IZ podaci .Društvena;





MySQL COUNT (*)

Metoda COUNT (*) koristi se za brojanje broja redaka koji se nalaze u tablici ili brojanje broja redaka prema danom uvjetu. Da biste provjerili ukupan broj redaka u tablici, 'društveno' isprobajte donji upit. Imamo ukupno 15 redaka u tablici prema rezultatu.

>> ODABERI RAČUNATI (*) IZ podaci .Društvena;



Bacite pogled na metodu COUNT (*) dok definirate neke uvjete. Moramo dohvatiti broj redaka u kojima je korisničko ime isto kao i 'Mustafa'. Možete vidjeti da imamo samo 4 zapisa za ovo ime.

>> ODABERI RAČUNATI (*) IZ podaci .Društvena GDJE Korisnik ='Mustafa';

Da biste dohvatili ukupan zbroj redaka na kojima je web stranica korisnika 'Instagram', pokušajte s dolje navedenim upitom. Tablica 'društvena' ima samo 4 zapisa za web stranicu 'Instagram'.

>> ODABERI RAČUNATI (*) IZ podaci .Društvena GDJE Web stranica=‘Instagram’;

Da biste dohvatili ukupan broj redaka u kojima je 'dob' veća od 18, učinite sljedeće:

>> ODABERI RAČUNATI (*) IZ podaci .Društvena GDJE Dob> 18;

Dohvatimo podatke stupaca 'Korisnik' i 'Web stranica' iz tablice, gdje Korisničko ime počinje s abecedom 'M'. Isprobajte donje upute na ljusci.

>> ODABERI Korisnik ,Web stranica IZ podaci .Društvena GDJE Korisnik Kao ‘M%';

MySQL COUNT (izraz)

U MySQL-u se metoda COUNT (izraz) koristi samo ako želite brojati vrijednosti koje nisu null stupca 'izraz'. 'Izraz' bi bio naziv bilo kojeg stupca. Uzmimo jednostavan primjer toga. Brojali smo samo nulte vrijednosti stupca 'Web stranica', koji se odnosi na stupac 'Dob' koji ima vrijednost jednaku '25'. Vidjeti! Imamo samo 4 zapisa bez vrijednosti za korisnike u dobi od 25 godina koji koriste web stranice.

>> ODABERI RAČUNATI (Web stranica) IZ podaci .Društvena GDJE Dob= 25;

MySQL COUNT (izraz DISTNCT)

U MySQL-u se metoda COUNT (izraz DISTINCT izraz) koristi za zbrajanje vrijednosti koje nisu null i različitih vrijednosti stupca 'izraz'. Za brojanje različitog broja vrijednosti koje nisu null u stupcu 'Dob' koristili smo donji upit. Iz tablice 'društveno' pronaći ćete 6 zapisa koji nisu ništni i različiti. To znači da imamo ukupno 6 ljudi različite dobi.

>> ODABERI RAČUNATI ( RAZLIKUJE Dob) IZ podaci .Društvena;

MySQL COUNT (IF (izraz))

Za veliki naglasak, trebate 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 učiniti kako bi se osigurala brza analiza podataka unutar baze podataka. Brojat ćemo broj redaka s različitim dobnim uvjetima i podijelit ćemo ih u tri različita stupca, što se može reći kao kategorije. Prvo, COUNT (IF) će brojati retke mlađe od 20 godina i spremiti taj broj u novi stupac pod nazivom 'Tinejdžer'. Drugi COUNT (IF) broji retke stare između 20 i 30 godina, a sprema ih u stupac 'Mladi'. Treće, posljednji broji retke starije od 30 godina i sprema u stupac 'Zreli'. U evidenciji imamo 5 tinejdžera, 9 mladih i samo 1 zrelu osobu.

>> ODABERI RAČUNATI ( AKO (Dob< dvadeset,1, NULL ))'Tinejdžerica', RAČUNATI ( AKO (Dob IZMEĐU dvadeset I 30,1, NULL ))'Mladi', RAČUNATI ( AKO (Dob> 30,1, NULL ))'Zrelo' IZ podaci .Društvena;

MySQL COUNT (*) s klauzulom GROUP BY

Naredba GROUP BY je SQL instrukcija koja koristi za retke grupe s istim vrijednostima. Vraća ukupan broj vrijednosti koje se nalaze u svakoj skupini. Na primjer, ako želite provjeriti broj svakog korisnika zasebno, morate definirati stupac 'Korisnik' klauzulom GROUP BY dok broji zapise za svakog korisnika s COUNT (*).

>> ODABERI Korisnik , RAČUNATI (*) IZ podaci .Društvena GRUPA PO Korisnik ;

Možete odabrati više od dva stupca tijekom izvođenja brojanja redaka zajedno s klauzulom GROUP BY, kako slijedi.

>> ODABERI Korisnik ,Dob,Web stranica, RAČUNATI (*) IZ podaci .Društvena GRUPA PO Web stranica;

Ako želimo brojati retke koristeći klauzulu WHERE koja ima neke uvjete uz GROUP BY i COUNT (*), to možete i učiniti. Upit u nastavku dohvatit će i prebrojati zapise stupaca: 'Korisnik', 'Web stranica' i 'Dob' gdje je vrijednost web stranice samo 'Instagram' i 'Snapchat'. Možete vidjeti da imamo samo jedan zapis za obje web stranice za različite korisnike.

>> ODABERI Korisnik ,Web stranica,Dob, RAČUNATI (*) IZ podaci .Društvena GDJE Web stranica=‘Instagram’ Ili Web stranica='Snapchat' GRUPA PO Web stranica,Dob;

MySQL COUNT (*) s GROUP BY i ORDER BY klauzulom

Isprobajmo klauzule GROUP BY i ORDER BY zajedno s metodom COUNT (). Dohvatimo i prebrojimo redove tablice 'društveno' dok raspoređujemo podatke u opadajućem redoslijedu pomoću ovog upita:

>> ODABERI Korisnik ,Web stranica,Dob, RAČUNATI (*) IZ podaci .Društvena GRUPA PO Dob NARUČI PO RAČUNATI (*) DESC ;

Upit dolje naveden prvo će prebrojati retke, a zatim će prikazati jedine zapise koji imaju COUNT veći od 2 u rastućem redoslijedu.

>> ODABERI Korisnik ,Dob, RAČUNATI (*) IZ podaci .Društvena GRUPA PO Dob IMAJUĆI RAČUNATI (*) > 2 NARUČI PO RAČUNATI (*) ASC ;

Zaključak

Prošli smo sve moguće metode za brojanje podudarnih ili dupliciranih zapisa pomoću metode COUNT () s različitim drugim klauzulama.