Data redundans oppstår av mange grunner. Flere av de kompliserte oppgavene du bør takle mens du jobber med databasesystemer, prøver å oppdage dupliserte verdier. For dette formålet vil vi bruke count () aggregatmetoden. Count () -metoden returnerer summen av rader som bor i en spesifikk tabell. Count () -funksjonen tillater deg å oppsummere alle rader eller bare rader som samsvarer med tilstanden definert. I denne guiden blir du kjent med hvordan du kan identifisere dupliserte verdier for en eller kanskje flere MySQL -kolonner ved å bruke Count (). Count () -metoden har følgende tre typer:
Gjør deg bestemt at du har MySQL installert på systemet ditt. Åpne MySQL-kommandolinjen klientskall og skriv inn passordet ditt for å fortsette. Vi vil se på noen eksempler for å telle de samsvarende verdiene ved hjelp av count () -metoden.
Vi har en tabell 'sosial' i skjemaet vårt 'data'. La oss sjekke posten via følgende spørsmål.
>> Velg * fra data.sosial;MySQL Count (*)
Count (*) -metoden brukes til å telle antall rader som bor i tabellen eller telle antall rader i henhold til den gitte tilstanden. For å sjekke det totale antallet rader i en tabell, 'sosialt' prøv spørringen nedenfor. Vi har totalt 15 rader i tabellen i henhold til resultatet.
>> Velg Count (*) fra data.sosial;Ta et glimt av Count (*) -metoden mens du definerer noen forhold. Vi må hente antall rader der brukernavnet er det samme som 'Mustafa'. Du kan se at vi bare har 4 poster for akkurat dette navnet.
>> Velg Count (*) fra data.sosialt der bruker = 'mustafa';For å hente den totale summen av rader der brukernes nettsted er 'Instagram', kan du prøve den under-uttalte spørringen. Tabellen 'Social' har bare 4 poster for nettstedet 'Instagram'.
>> Velg Count (*) fra data.sosialt hvor nettsted = 'Instagram';Å hente det totale antallet rader der 'alderen' er større enn 18, er som følger:
>> Velg Count (*) fra data.sosial der alder> 18;La oss hente dataene fra kolonner 'bruker' og 'nettsted' fra en tabell, der brukernavnet starter med alfabetet 'M'. Prøv instruksjonen nedenfor på skallet.
>> Velg bruker, nettsted fra data.sosialt der bruker som 'm%';MySQL Count (uttrykk)
I MySQL brukes telleren (uttrykk) bare når du vil telle ikke-nullverdier for kolonnen 'uttrykk'. 'Uttrykket' ville være navnet på en hvilken som helst kolonne. La oss ta et enkelt eksempel på det. Vi har bare talt ikke-nullverdiene til en kolonne 'nettsted', som er relatert til kolonnen 'Age' har en verdi som tilsvarer '25'. Se! Vi har bare 4 ikke-null-poster for brukerne som har alder '25', som bruker nettsteder.
>> Velg Count (nettsted) fra data.sosial der alder = 25;MySQL Count (Distnct Expression)
I MySQL brukes metoden (distinkt uttrykk) for å summere ikke-nullverdier og distinkte verdier av kolonnen 'uttrykk'. For å telle et tydelig antall ikke-nullverdier i kolonnen 'Age' har vi brukt spørringen nedenfor. Du finner 6 ikke-null og distinkte poster over kolonnen 'Age' fra tabellen 'Social'. Dette betyr at vi har totalt 6 personer som har forskjellige aldre.
>> Velg Count (distinkt alder) fra data.sosial;Mysql count (if (uttrykk))
For stor vekt bør du slå sammen telling () med flytkontrollfunksjoner. For det første, for en del av uttrykket som brukes i count () -metoden, kan du bruke IF () -funksjonen. Det kan være veldig nyttig å gjøre dette for å gi en rask oversikt over informasjonen i en database. Vi vil telle antall rader med forskjellige aldersforhold og dele dem inn i tre forskjellige kolonner, som kan sies som kategorier. Først vil Count (hvis) telle radene som har alder mindre enn 20 og lagre dette antallet en ny kolonne som heter 'Teenage'. Andre telling (hvis) teller radene som har alder mellom 20 og 30 år mens de lagrer den til en kolonne 'ung'. For det tredje teller de siste radene som har aldre større enn 30 og lagret i en kolonne 'moden'. Vi har 5 tenåringer, 9 unge og bare 1 moden person i vår plate.
>> Velg telling (if (i alderen 30,1, null)) 'moden' fra data.sosial;Mysql count (*) med gruppe etter klausul
Gruppen etter uttalelse er en SQL -instruksjon som bruker for grupperinger med de samme verdiene. Det returnerer det totale antallet verdier som er bosatt i hver gruppe. For eksempel, hvis du vil sjekke hver brukers nummer separat, må du definere kolonnen 'bruker' med gruppen etter klausul mens du teller poster for hver bruker med telling (*).
>> Velg bruker, tell (*) fra data.Sosial gruppe av bruker;Du kan enten velge mer enn to kolonner mens du utfører tellingen av rader sammen med gruppen etter klausul, som følger.
>> Velg bruker, alder, nettsted, telling (*) fra data.Sosial gruppe etter nettsted;Hvis vi vil telle rader mens vi bruker hvor leddet har noen forhold i den sammen med gruppen av og teller (*), kan du også gjøre det. Spørringen nedenfor vil hente og telle postene til kolonnene: 'Bruker', 'nettsted' og 'Age' hvor nettverdien er 'Instagram' og 'Snapchat'. Du kan se at vi bare har en post for begge nettsteder for forskjellige brukere.
>> Velg bruker, nettsted, alder, telling (*) fra data.Social hvor nettsted = 'Instagram' eller nettsted = 'Snapchat' gruppe etter nettsted, alder;Mysql count (*) med gruppe av og ordre etter klausul
La oss prøve gruppen etter og bestille etter klausuler i fellesskap med count () -metode. La oss hente og telle radene med tabellen 'sosiale' mens du ordner dataene i synkende rekkefølge ved å bruke denne spørringen:
>> Velg bruker, nettsted, alder, telling (*) fra data.Sosial gruppe etter aldersordre etter Count (*) Desc;Den under-uttalte spørringen vil først telle radene, og viser deretter de eneste postene som har teller større enn 2 i stigende rekkefølge.
>> Velg bruker, alder, tell (*) fra data.Sosial gruppe etter alder har telling (*)> 2 ordre etter telling (*) ASC;Konklusjon
Vi har gått gjennom alle mulige metoder for å telle matchende eller dupliserte poster ved hjelp av count () -metoden med forskjellige andre klausuler.