MySQL MariaDB

MySQL-telling overeenkomende records met COUNT

MySQL-telling overeenkomende records met COUNT

Gegevensredundantie vindt om veel redenen plaats. 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 overeenkomen met 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:

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 'social' in ons schema 'data'. Laten we het record controleren via de volgende vraag:.

>> KIES * UIT 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: 'sociaal'. We hebben in totaal 15 rijen in de tabel volgens het resultaat.

>> SELECTEER AANTAL(*) UIT 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.

>> SELECTEER AANTAL(*) UIT gegevens.sociaal WHERE 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 'social' heeft slechts 4 records voor de website 'Instagram'.

>> SELECTEER AANTAL(*) UIT gegevens.sociaal WHERE Website = 'Instagram';

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

>> SELECTEER AANTAL(*) UIT 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:.

>> SELECT Gebruiker, Website FROM data.sociaal WHERE Gebruiker zoals '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 zijn van elke kolom. 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.

>> SELECTEER AANTAL (website) UIT gegevens.sociaal WAAR Leeftijd = 25;

MySQL COUNT(DISTNCT-expressie)

In MySQL wordt de methode COUNT(DISTINCT expression) gebruikt om niet-Null-waarden en verschillende 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.

>> SELECTEER AANTAL (VERSCHILLENDE leeftijd) UIT 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 het wordt 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.

>> SELECTEER AANTAL (ALS (Leeftijd) < 20,1,NULL)) 'Teenage', COUNT(IF(Age BETWEEN 20 AND  30,1,NULL)) 'Young', COUNT(IF(Age > 30,1,NULL)) 'Mature' FROM data.sociaal;

MySQL COUNT(*) met GROUP BY-clausule

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

>> SELECT User, COUNT(*) FROM data.sociaal GROEP OP Gebruiker;

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

>> SELECTEER Gebruiker, Leeftijd, Website, COUNT(*) FROM data.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 kunt u dat ook doen. De onderstaande query haalt en telt de records van kolommen: 'Gebruiker', 'Website' en 'Leeftijd' waarbij de websitewaarde alleen 'Instagram' en 'Snapchat' is. U kunt zien dat we slechts 1 record hebben voor beide websites voor verschillende gebruikers.

>> SELECTEER Gebruiker, Website, Leeftijd, COUNT(*) FROM data.sociaal  WHERE 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:

>>  SELECTEER Gebruiker, Website, Leeftijd, COUNT(*) FROM data.sociaal GROEPEREN OP Leeftijd ORDER OP AANTAL(*) DESC;

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

>> SELECTEER Gebruiker, Leeftijd, COUNT(*) FROM data.sociaal  GROEP OP Leeftijd MET AANTAL(*) > 2 BESTELLEN OP AANTAL(*) 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.

OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...