Dataredundans oppstår av mange grunner. Flere av de kompliserte oppgavene du bør takle mens du arbeider med databasesystemer, prøver å oppdage duplikatverdier. For dette formålet bruker vi COUNT () -aggregatmetoden. COUNT () -metoden returnerer summen av rader som ligger i en bestemt tabell. COUNT () -funksjonen lar deg summere alle rader eller bare rader som samsvarer med den definerte tilstanden. I denne guiden 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)
Forsikre deg om at du har MySQL installert på systemet ditt. Åpne MySQL kommandolinjeklientskall og skriv inn passordet ditt for å fortsette. Vi vil se på noen eksempler for å telle samsvarende verdier ved hjelp av COUNT () -metoden.
Vi har en tabell 'sosial' i skjemaets 'data'. La oss sjekke posten via følgende spørsmål.
>> VELG * FRA data.sosial;
MySQL-TELLING (*)
COUNT (*) -metoden brukes til å telle antall rader som ligger i tabellen eller telle antall rader i henhold til gitt tilstand. For å sjekke totalt antall rader i en tabell, prøv 'sosial' spørringen nedenfor. Vi har totalt 15 rader i tabellen i henhold til resultatet.
>> VELG TELL (*) 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.
>> VELG TELL (*) FRA data.sosial WHERE bruker = 'Mustafa';
Hvis du vil hente den totale summen av rader der brukernes nettsted er 'Instagram', kan du prøve spørringen nedenfor. Tabellen "sosial" har bare 4 poster for nettstedet "Instagram".
>> VELG TELL (*) FRA data.sosialt WHERE nettsted = 'Instagram';
Å hente totalt antall rader der 'Alderen' er større enn 18 er som følger:
>> VELG TELL (*) FRA data.sosial WHERE Alder> 18;
La oss hente dataene fra kolonnene 'Bruker' og 'Nettsted' fra en tabell, der brukernavnet starter med alfabetet 'M'. Prøv instruksjonene nedenfor på skallet.
>> VELG bruker, nettsted FRA data.sosial WHERE Bruker som 'M%';
MySQL COUNT (uttrykk)
I MySQL brukes COUNT (uttrykk) -metoden bare når du vil telle verdier som ikke er null 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 telt ikke-nullverdiene til en kolonne 'Nettsted', som er relatert til kolonnen 'Alder' som har en verdi som tilsvarer '25'. Se! Vi har bare 4 poster som ikke er null for brukere som har fylt 25 år, og som bruker nettsteder.
>> VELG TELL (nettsted) FRA data.sosial WHERE Alder = 25;
MySQL COUNT (DISTNCT-uttrykk)
I MySQL brukes COUNT (DISTINCT expression) -metoden til å summere ikke-nullverdier og distinkte verdier i kolonneuttrykket. For å telle et tydelig antall ikke-nullverdier i kolonnen 'Alder' har vi brukt spørringen nedenfor. Du finner 6 ikke-null og tydelige poster for kolonnen 'Alder' fra tabellen 'sosial'. Dette betyr at vi har totalt 6 personer som har forskjellige aldre.
>> VELG TELL (DISTINCT Age) 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 i en database. Vi vil telle antall rader med forskjellige aldersbetingelser og dele dem i tre forskjellige kolonner, som kan sies som kategorier. Først vil COUNT (IF) telle radene som er under 20 år og lagre denne tellingen i en ny kolonne kalt 'Teenage'. Second COUNT (IF) teller radene i alderen 20 til 30 mens den lagres i kolonnen "Young". For det tredje teller de siste radene som er eldre enn 30 år og lagret i en kolonne 'Moden'. Vi har 5 tenåringer, 9 unge og bare 1 moden person i vår rekord.
>> VELG TELL (HVIS (Alder < 20,1,NULL)) 'Teenage', COUNT(IF(Age BETWEEN 20 AND 30,1,NULL)) 'Young', COUNT(IF(Age > 30,1, NULL)) 'Modne' FRA data.sosial;
MySQL COUNT (*) med GROUP BY-klausul
GROUP BY-setningen er en SQL-instruksjon som bruker for grupperader med de samme verdiene. Den returnerer det totale antall verdier som ligger i hver gruppe. Hvis du for eksempel vil sjekke hver brukeres nummer separat, må du definere kolonnen 'Bruker' med GROUP BY-setningen mens du teller poster for hver bruker med COUNT (*).
>> VELG bruker, TELL (*) FRA data.sosial GROUP BY bruker;
Du kan enten velge mer enn to kolonner mens du utfører telling av rader sammen med GROUP BY-setningen, som følger.
>> VELG Bruker, Alder, Nettsted, ANTALL (*) FRA data.sosialt GROUP BY Nettsted;
Hvis vi vil telle rader mens vi bruker WHERE-setningen med noen betingelser i den sammen med GROUP BY og COUNT (*), kan du også gjøre det. Spørringen nedenfor henter og teller postene til kolonnene: 'Bruker', 'Nettsted' og 'Alder' der nettstedsverdien bare er 'Instagram' og 'Snapchat'. Du kan se at vi bare har 1 rekord for begge nettsteder for forskjellige brukere.
>> VELG Bruker, Nettsted, Alder, ANTALL (*) FRA data.sosialt WHERE Nettsted = 'Instagram' Eller Nettsted = 'Snapchat' GROUP BY Nettsted, Alder;
MySQL COUNT (*) med GROUP BY og ORDER BY-klausul
La oss prøve klausulene GROUP BY og ORDER BY sammen med COUNT () -metoden. La oss hente og telle radene i tabellen "sosial" mens vi ordner dataene i synkende rekkefølge ved hjelp av dette spørsmålet:
>> VELG bruker, nettsted, alder, COUNT (*) FRA data.sosial GRUPPE Etter alder BESTILLING PÅ LAND (*) DESK;
Søknaden nedenfor vil først telle radene, og deretter vise de eneste postene som har COUNT større enn 2 i stigende rekkefølge.
>> VELG bruker, alder, ANTALL (*) FRA data.sosial GRUPPE Etter alder HAR TELL (*)> 2 BESTILLING TIL COUNT (*) ASC;
Konklusjon
Vi har gått gjennom alle mulige metoder for å telle samsvarende eller dupliserte poster ved hjelp av COUNT () -metoden med forskjellige andre ledd.