MySQL GROUP BY

samenvatting: in deze tutorial leert u hoe u MySQL GROUP BY kunt gebruiken om rijen in subgroepen te groeperen op basis van waarden van kolommen of expressies.

Introduction to MySQL GROUP BY clause

de GROUP BY clause groepeert een reeks rijen in een reeks samenvattende rijen op basis van waarden van kolommen of expressies. DeGROUP BY clausule geeft één rij voor elke groep terug. Met andere woorden, het vermindert het aantal rijen in de resultatenreeks.,

u gebruikt vaak de GROUP BY clausule met geaggregeerde functies zoals SUM, AVG, MAX, MIN, en COUNT. De aggregate functie die verschijnt in deSELECT clausule geeft informatie over elke groep.

de GROUP BY clausule is een optionele clausule van de SELECT verklaring., Het volgende illustreert de syntaxis van GROUP BY:

de GROUP BY clausule moet verschijnen na de FROM en WHERE clausules. Na deGROUP BY sleutelwoorden is een lijst met door komma ‘ s gescheiden kolommen of uitdrukkingen die u wilt gebruiken als criteria om rijen te groeperen.,

MySQL evaluates the GROUP BY clause after the FROM, WHERE and SELECT clauses and before the HAVING , ORDER BY and LIMIT clauses:

MySQL GROUP BY examples

Let’s take some example of using the GROUP BY clause.,

A) eenvoudige MySQL groep door voorbeeld

laten we eens kijken naar de orders tabel in de voorbeelddatabase.,

Stel u wilt de waarden van de groep van de order in subgroepen, gebruik je de GROUP BY clausule met de status kolom als de volgende query:

Code language: SQL (Structured Query Language) (sql)

Probeer Het

Zoals je kan zien, de GROUP BY clausule geeft unieke exemplaren van status waarden., Het werkt als deDISTINCT operator zoals getoond in de volgende query:

Code language: SQL (Structured Query Language) (sql)

probeer het uit

B) met behulp van MySQL GROUP door met aggregate functies

De aggregate functies kunt u de berekening van een reeks rijen uit te voeren en retourneren van een enkele waarde. DeGROUP BY clausule wordt vaak gebruikt met een aggregate functie om berekening uit te voeren en een enkele waarde voor elke subgroep te retourneren.,

bijvoorbeeld, als u wilt weten van het aantal orders in elke status, u kunt gebruik maken van de COUNT functie met de GROUP BY component als volgt:

Code language: SQL (Structured Query Language) (sql)

Probeer Het

Zie de volgende orders en orderdetails tabel.,

Om het totaal bedrag van alle bestellingen met een status, je deelnemen aan de orders tabel met de orderdetails tabel en gebruik de SUM functie voor het berekenen van het totale bedrag. Zie de volgende query:

Code language: SQL (Structured Query Language) (sql)

probeer het uit

Op dezelfde manier retourneert de volgende query de ordernummers en het totale bedrag van elke bestelling.,

Code language: SQL (Structured Query Language) (sql)

probeer het uit

C) MySQL groep met expressievoorbeeld

naast kolommen kunt u rijen groeperen met expressies. De volgende query krijgt de totale omzet voor elk jaar.

probeer het uit

in dit voorbeeld hebben we de functie YEAR gebruikt om jaargegevens uit de orderdatum te extraheren ( orderDate)., We hebben alleen orders met shipped status opgenomen in de totale verkoop. Merk op dat de uitdrukking in de SELECT – clausule dezelfde moet zijn als die in de GROUP BY – clausule.

D) met behulp van MySQL-groep door met clausule voorbeeld

om de groepen te filteren die worden geretourneerd door GROUP BY – clausule, gebruikt u een HAVING – clausule. De volgende query gebruikt deHAVING clausule om de totale verkoop van de jaren na 2003 te selecteren.,

Code language: SQL (Structured Query Language) (sql)

probeer het uit

the GROUP BY clause: MySQL VS.standaard SQL

standaard SQL staat niet toe om een alias te gebruiken in de GROUP BY clausule ondersteunt MySQL dit echter.

bijvoorbeeld, de volgende query haalt het jaar uit de orderdatum. Het gebruikt eerst year als een alias van de uitdrukking YEAR(orderDate) en vervolgens de year alias in de GROUP BY clausule., Deze query is niet geldig in standaard SQL.

probeer het uit

met MySQL kunt u ook groepen sorteren in oplopende of aflopende volgorde, terwijl de standaard SQL dat niet doet. De standaardvolgorde is oplopend., Bijvoorbeeld, als u wilt krijgen van het aantal orders met status en sorteren van de status in aflopende volgorde, kunt u gebruik maken van de GROUP BY clausule DESC als de volgende query:

Code language: SQL (Structured Query Language) (sql)

Probeer Het

Merk op dat we gebruikt DESC in de GROUP BY component voor het sorteren van de status in aflopende volgorde., We kunnen ook expliciet ASC specificeren in de GROUP BY clausule om de groepen op status in oplopende volgorde te sorteren.

in deze tutorial hebben we u laten zien hoe u de MySQL GROUP BY clausule gebruikt om rijen in subgroepen te groeperen op basis van waarden van kolommen of expressies.

  • Was deze tutorial nuttig?
  • YesNo

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Spring naar toolbar