MySQL-telling overeenkomende records met COUNT

Mysql Count Matching Records With Count



Gegevensredundantie treedt om veel redenen op. Verschillende van de gecompliceerde taken die u moet uitvoeren tijdens het werken met databasesystemen, is proberen dubbele waarden te ontdekken. Voor dit doel gebruiken we de COUNT() aggregatiemethode. De methode COUNT() retourneert de som van de rijen die zich in een specifieke tabel bevinden. Met de functie COUNT() kunt u alle rijen optellen of alleen rijen die voldoen aan de gedefinieerde voorwaarde. In deze handleiding leert u hoe u dubbele waarden voor een of misschien meer MySQL-kolommen kunt identificeren met COUNT(). De methode COUNT() heeft de volgende drie typen:

  • GRAAF(*)
  • AANTAL(uitdrukking)
  • COUNT(DISTINCT-expressie)

Zorg ervoor dat u MySQL op uw systeem hebt geïnstalleerd. Open de MySQL-opdrachtregelclientshell en voer uw wachtwoord in om door te gaan. We zullen enkele voorbeelden bekijken voor het tellen van de overeenkomende waarden met behulp van de COUNT()-methode.









We hebben een tabel ‘sociaal’ in ons schema ‘data’. Laten we het record ervan controleren via de volgende query.



>> KIES * VAN gegevens .Sociaal;





MySQL-COUNT(*)

De COUNT(*)-methode wordt gebruikt om het aantal rijen in de tabel te tellen of om het aantal rijen te tellen volgens de gegeven voorwaarde. Probeer de onderstaande zoekopdracht om het totale aantal rijen in een tabel te controleren met 'sociaal'. We hebben in totaal 15 rijen in de tabel volgens het resultaat.

>> KIES GRAAF (*) VAN gegevens .Sociaal;



Bekijk de COUNT(*)-methode terwijl u enkele voorwaarden definieert. We moeten het aantal rijen ophalen waar de gebruikersnaam hetzelfde is als 'Mustafa'. U kunt zien dat we slechts 4 records hebben voor deze specifieke naam.

>> KIES GRAAF (*) VAN gegevens .Sociaal WAAR Gebruiker ='Mustafa';

Probeer de onderstaande zoekopdracht om de totale som van rijen op te halen waar de website van de gebruiker 'Instagram' is. De tabel ‘sociaal’ heeft slechts 4 records voor de website ‘Instagram’.

>> KIES GRAAF (*) VAN gegevens .Sociaal WAAR Website='Instagram';

Om het totale aantal rijen op te halen waar de 'Leeftijd' groter is dan 18, gaat u als volgt:

>> KIES GRAAF (*) VAN gegevens .Sociaal WAAR Leeftijd> 18;

Laten we de gegevens van de kolommen 'Gebruiker' en 'Website' ophalen uit een tabel, waar de gebruikersnaam begint met het alfabet 'M'. Probeer de onderstaande instructie op de shell.

>> KIES Gebruiker ,Website VAN gegevens .Sociaal WAAR Gebruiker Leuk vinden 'M%';

MySQL COUNT(expressie)

In MySQL wordt de COUNT(expression)-methode alleen gebruikt als u niet-Null-waarden van de kolom 'expression' wilt tellen. De 'uitdrukking' zou de naam van elke kolom zijn. Laten we er een eenvoudig voorbeeld van nemen. We hebben alleen de niet-null-waarden geteld van een kolom 'Website', die gerelateerd is aan de kolom 'Leeftijd' met een waarde die gelijk is aan '25'. Zien! We hebben slechts 4 niet-null-records voor de gebruikers met de leeftijd van '25', die websites gebruiken.

>> KIES GRAAF (Website) VAN gegevens .Sociaal WAAR Leeftijd= 25;

MySQL COUNT(DISTNCT-expressie)

In MySQL wordt de methode COUNT(DISTINCT expression) gebruikt om niet-Null-waarden en afzonderlijke waarden van de kolom 'expression' op te tellen. Om een ​​duidelijk aantal niet-null-waarden in de kolom 'Leeftijd' te tellen, hebben we de onderstaande query gebruikt. U vindt 6 niet-null en verschillende records van kolom 'Leeftijd' uit de tabel 'sociaal'. Dit betekent dat we in totaal 6 mensen hebben van verschillende leeftijden.

>> KIES GRAAF ( VERSCHILLEND Leeftijd) VAN gegevens .Sociaal;

MySQL COUNT(IF(expressie))

Voor grote nadruk moet u COUNT() samenvoegen met flow control-functies. Om te beginnen, voor een deel van de uitdrukking die wordt gebruikt in de COUNT()-methode, kunt u de IF()-functie gebruiken. Het kan erg handig zijn om dit te doen om een ​​snel overzicht te krijgen van de informatie in een database. We tellen het aantal rijen met verschillende leeftijdsvoorwaarden en verdelen ze in drie verschillende kolommen, die als categorieën kunnen worden gezegd. Eerst telt COUNT(IF) de rijen met een leeftijd van minder dan 20 en slaat deze telling op in een nieuwe kolom met de naam 'Teenage'. Tweede AANTAL (ALS) telt de rijen met leeftijden tussen 20 en 30 terwijl ze worden opgeslagen in een kolom 'Jong'. Ten derde telt de laatste de rijen met een leeftijd van meer dan 30 en opgeslagen in een kolom 'Volwassen'. We hebben 5 tieners, 9 jonge en slechts 1 volwassen persoon in ons record.

>> KIES GRAAF ( INDIEN (Leeftijd< twintig,1, NUL ))'Tiener', GRAAF ( INDIEN (Leeftijd TUSSEN twintig EN 30,1, NUL ))'Jong', GRAAF ( INDIEN (Leeftijd> 30,1, NUL ))'Volwassen' VAN gegevens .Sociaal;

MySQL COUNT(*) met GROUP BY-clausule

De GROUP BY-instructie is een SQL-instructie die wordt gebruikt voor groepsrijen met dezelfde waarden. Het retourneert het totale aantal waarden in elke groep. Als u bijvoorbeeld het nummer van elke gebruiker afzonderlijk wilt controleren, moet u de kolom 'Gebruiker' definiëren met de GROUP BY-clausule terwijl u records voor elke gebruiker telt met COUNT(*).

>> KIES Gebruiker , GRAAF (*) VAN gegevens .Sociaal GROEP OP Gebruiker ;

U kunt als volgt meer dan twee kolommen selecteren tijdens het tellen van rijen samen met de GROUP BY-component.

>> KIES Gebruiker ,Leeftijd,Website, GRAAF (*) VAN gegevens .Sociaal GROEP OP Website;

Als we rijen willen tellen terwijl we de WHERE-component gebruiken met enkele voorwaarden erin naast de GROUP BY en COUNT(*), dan kan dat ook. De onderstaande query haalt en telt de records van kolommen: 'Gebruiker', 'Website' en 'Leeftijd' waarbij de websitewaarde alleen 'Instagram' en 'Snapchat' is. U ziet dat we voor beide websites slechts 1 record hebben voor verschillende gebruikers.

>> KIES Gebruiker ,Website,Leeftijd, GRAAF (*) VAN gegevens .Sociaal WAAR Website='Instagram' Of Website=‘Snapchat’ GROEP OP Website,Leeftijd;

MySQL COUNT(*) met GROUP BY en ORDER BY-clausule

Laten we de clausules GROUP BY en ORDER BY samen met de methode COUNT() proberen. Laten we de rijen van de tabel 'sociaal' ophalen en tellen terwijl we de gegevens in aflopende volgorde rangschikken met behulp van deze query:

>> KIES Gebruiker ,Website,Leeftijd, GRAAF (*) VAN gegevens .Sociaal GROEP OP Leeftijd BESTEL DOOR GRAAF (*) DESC ;

De onderstaande query telt eerst de rijen en geeft vervolgens de enige records weer met COUNT groter dan 2 in oplopende volgorde.

>> KIES Gebruiker ,Leeftijd, GRAAF (*) VAN gegevens .Sociaal GROEP OP Leeftijd HEBBEN GRAAF (*) > 2 BESTEL DOOR GRAAF (*) ASC ;

Conclusie

We hebben alle mogelijke methoden doorlopen om de overeenkomende of dubbele records te tellen met behulp van de COUNT()-methode met verschillende andere clausules.