Dataredundans oppstår av mange årsaker. Flere av de kompliserte oppgavene du bør takle mens du arbeider med databasesystemer, prøver å oppdage dupliserte verdier. For dette formålet bruker vi COUNT () -metoden. Metoden COUNT () returnerer summen av radene i en bestemt tabell. COUNT () -funksjonen lar deg summere alle rader eller bare rader som samsvarer med betingelsen som er definert. I denne veiledningen får du vite hvordan du identifiserer dupliserte verdier for en eller kanskje flere MySQL -kolonner ved hjelp av COUNT (). COUNT () -metoden har følgende tre typer:
- TELLE(*)
- COUNT (uttrykk)
- COUNT (DISTINCT uttrykk)
Gjør det klart at du har MySQL installert på systemet ditt. Åpne MySQL kommandolinjeklientskall og skriv inn passordet ditt for å fortsette. Vi skal se på noen eksempler for å telle matchende verdier ved hjelp av metoden COUNT ().
Vi har en tabell 'sosial' i skjemaet 'data'. La oss sjekke posten via følgende spørring.
>> PLUKKE UT * FRA data .Sosial;
MySQL COUNT (*)
TELLING (*) metoden brukes til å telle antall rader i tabellen eller telle antall rader i henhold til den gitte tilstanden. For å sjekke det totale antallet rader i en tabell, prøv 'sosialt' spørringen nedenfor. Vi har totalt 15 rader i tabellen i henhold til resultatet.
>> PLUKKE UT TELLE (*) 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 dette navnet.
>> PLUKKE UT TELLE (*) FRA data .Sosial HVOR Bruker ='Mustafa';
For å hente den totale summen av rader der brukerens nettsted er 'Instagram', kan du prøve spørringen nedenfor. Tabellen 'sosial' har bare 4 poster for nettstedet 'Instagram'.
>> PLUKKE UT TELLE (*) FRA data .Sosial HVOR Nettsted='Instagram';
For å hente det totale antallet rader der ‘Alderen’ er større enn 18 er som følger:
>> PLUKKE UT TELLE (*) FRA data .Sosial HVOR Alder> 18;
La oss hente dataene i kolonnene 'Bruker' og 'Nettsted' fra en tabell, der brukernavnet begynner med alfabetet 'M'. Prøv instruksjonene nedenfor på skallet.
>> PLUKKE UT Bruker ,Nettsted FRA data .Sosial HVOR Bruker som ‘M.%';
MySQL COUNT (uttrykk)
I MySQL brukes COUNT (uttrykk) -metoden bare når du vil telle ikke-Null-verdier i kolonnen 'uttrykk'. ‘Uttrykket’ vil være navnet på en hvilken som helst kolonne. La oss ta et enkelt eksempel på det. Vi har bare talt de ikke-nullverdiene til kolonnen 'Nettsted', som er relatert til at kolonnen 'Alder' har en verdi som tilsvarer '25'. Se! Vi har bare 4 ikke-null-poster for brukere som er 25 år gamle og som bruker nettsteder.
>> PLUKKE UT TELLE (Nettsted) FRA data .Sosial HVOR Alder= 25;
MySQL COUNT (DISTNCT -uttrykk)
I MySQL brukes metoden COUNT (DISTINCT expression) for å summere ikke-Null-verdier og forskjellige verdier for kolonnen 'uttrykk'. For å telle et tydelig antall ikke-nullverdier i kolonnen ‘Alder’ har vi brukt spørringen nedenfor. Du finner 6 ikke-null og distinkte registreringer av kolonnen ‘Alder’ fra tabellen ‘sosial’. Dette betyr at vi har totalt 6 personer i forskjellige aldre.
>> PLUKKE UT TELLE ( DISTINKT Alder) FRA data .Sosial;
MySQL COUNT (IF (uttrykk))
For stor vekt bør du slå sammen COUNT () 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 inne i en database. Vi teller antall rader med forskjellige aldersforhold og deler dem i tre forskjellige kolonner, som kan sies som kategorier. Først vil COUNT (IF) telle radene som har en alder under 20 år og lagre dette tallet i en ny kolonne som heter 'Teenage'. Second COUNT (IF) teller radene som har en alder mellom 20 og 30 mens du lagrer den i kolonnen 'Young'. For det tredje teller den siste radene med aldre større enn 30 og lagret i kolonnen 'Eldre'. Vi har 5 tenåringer, 9 unge og bare 1 moden person i vår rekord.
>> PLUKKE UT TELLE ( HVIS (Alder< tjue,1, NULL ))'Teenage', TELLE ( HVIS (Alder MELLOM tjue OG 30,1, NULL ))'Ung', TELLE ( HVIS (Alder> 30,1, NULL ))'Moden' FRA data .Sosial;
MySQL COUNT (*) med GROUP BY klausul
GROUP BY -setningen er en SQL -instruksjon som brukes for grupperader med samme verdier. Den returnerer det totale antallet verdier som finnes i hver gruppe. For eksempel, hvis du vil kontrollere hver brukers nummer separat, må du definere kolonnen 'Bruker' med GROUP BY -setningen mens du teller poster for hver bruker med COUNT (*).
>> PLUKKE UT Bruker , TELLE (*) FRA data .Sosial GRUPPE AV Bruker ;
Du kan enten velge mer enn to kolonner mens du utfører tellingen av rader sammen med GROUP BY -setningen, som følger.
>> PLUKKE UT Bruker ,Alder,Nettsted, TELLE (*) FRA data .Sosial GRUPPE AV Nettsted;
Hvis vi vil telle rader mens vi bruker WHERE -leddet med noen betingelser i tillegg til GROUP BY og COUNT (*), kan du også gjøre det. Søket nedenfor vil hente og telle postene for kolonner: 'Bruker', 'Nettsted' og 'Alder' der nettverksverdien bare er 'Instagram' og 'Snapchat'. Du kan se at vi bare har 1 post for begge nettstedene for forskjellige brukere.
>> PLUKKE UT Bruker ,Nettsted,Alder, TELLE (*) FRA data .Sosial HVOR Nettsted='Instagram' Eller Nettsted='Snapchat' GRUPPE AV Nettsted,Alder;
MySQL COUNT (*) med GROUP BY og ORDER BY Clause
La oss prøve GROUP BY- og ORDER BY -leddene sammen med COUNT () -metoden. La oss hente og telle radene i tabellen ‘sosiale’ mens vi ordner dataene i synkende rekkefølge ved å bruke denne spørringen:
>> PLUKKE UT Bruker ,Nettsted,Alder, TELLE (*) FRA data .Sosial GRUPPE AV Alder REKKEFØLGE ETTER TELLE (*) DESC ;
Den nedenfor angitte spørringen vil først telle radene, og deretter vise de eneste postene som har COUNT større enn 2 i stigende rekkefølge.
>> PLUKKE UT Bruker ,Alder, TELLE (*) FRA data .Sosial GRUPPE AV Alder HAR TELLE (*) > 2 REKKEFØLGE ETTER TELLE (*) ASC ;
Konklusjon
Vi har gått gjennom alle mulige metoder for å telle matchende eller dupliserte poster ved hjelp av COUNT () -metoden med forskjellige andre ledd.