Hoe de MySQL HAVING-clausule te gebruiken waarbij de som groter is dan de drempel

Hoe De Mysql Having Clausule Te Gebruiken Waarbij De Som Groter Is Dan De Drempel



Wanneer u met de MySQL-database werkt, zult u vaak instanties hebben waarop u de waarden wilt filteren. Hoewel u de WHERE-clausule kunt gebruiken, werkt deze niet altijd voor alle instanties. De HAVING-component wordt gebruikt wanneer u een filterquery wilt uitvoeren met behulp van een statistische functie en de groeperingen wilt toepassen.

De HAVING-component vertrouwt op de GROUP BY-component in zijn filter en voert de query uit op basis van de opgegeven voorwaarde. Het beperkt het filter op basis van de voorwaarde en retourneert alleen de geselecteerde groepen als ze aan de voorwaarde voldoen. We hebben voorbeelden van het gebruik van de MySQL HAVING-clausule waarbij de som de drempel overschrijdt. Op die manier leer je aan het einde van het bericht van vandaag hoe je het moet gebruiken.







Hoe de MySQL HAVING-clausule te gebruiken waarbij de som groter is dan de drempel

De MySQL HAVING-clausule past u toe met de GROUP BY-clausule. De syntaxis is als volgt:



SELECTEER expressie1, .. expression_n, aggreg_func (expressie) FROM table_name GROUP BY expressie HAVING ;

U kunt de verschillende aggregatiefuncties gebruiken, waaronder SUM(), COUNT(), MIN(), MAX() en AVG(). Merk op dat elke expressie die niet wordt gebruikt met de aggregatiefunctie, moet worden vermeld met de GROUP BY-clausule.



Wat de voorwaarde betreft, deze wordt toegepast op de geaggregeerde resultaten waar u de drempel specificeert die u met de voorwaarde wilt controleren. U kunt bijvoorbeeld de functie SUM() toepassen en controleren of de uitdrukking voldoet aan een drempelwaarde van 10. We zullen er meer over begrijpen in de gegeven voorbeelden.





Laten we, om te begrijpen hoe de HAVING-component werkt, een voorbeelddatabase maken waarmee we zullen werken. We noemen onze database 'registreren'.



Laten we ook een tabel maken met de naam 'werknemers' om onze verschillende kolommen en gegevenstypen te bevatten. Hier werken we met de gegevens van de werknemers, zoals de naam, uren, werkdatum, enz.

Door de beschrijving van onze tabel te controleren, kunnen we bevestigen dat alle kolommen met succes zijn gemaakt.

We voegen de waarden in onze tabel in. We hebben verschillende werknemers die in verschillende uren en dagen werken. Met behulp van deze gegevens kunnen we de HAVING-clausule toepassen wanneer de som de drempel overschrijdt.

Laten we voor ons eerste voorbeeld eens kijken naar een geval waarin we de werknemers willen vinden die de meeste uren hebben gewerkt. Neem voor de HAVING-clausule de som-aggregatiefunctie voor uren op. In de GROUP BY-clausule groeperen we de rijen met behulp van de naamrij om de werknemers te helpen classificeren met een totaal aantal uren dat hoger is dan de drempel.

Als we onze drempel voor het totale aantal uren op 7 hebben, voeren we onze opdracht als volgt uit:

SELECTEER naam, SUM(uren) AS total_hours_per_person VAN werknemers GROEP OP naam HAVING som(uren) > 7;

Door de opdracht uit te voeren, krijgen we een uitvoer die twee rijen bevat, aangezien slechts twee werkers de drempel hebben overschreden die is opgegeven in de HAVING-component.

Stel dat we de afdelingen willen classificeren om de afdelingen te zien met werknemers die werken in uren die langer zijn dan een drempel van 7 uur. We selecteren de afdeling, gebruiken vervolgens de SUM-aggregatiefunctie met de uren en groeperen de rijen met behulp van de afdelingsuitdrukking.

Onze opdracht is als volgt:

SELECTEER afdeling, SUM(uren) AS total_hours_per_department VAN werknemers GROEP PER afdeling HAVING som(uren) > 7;

Uit de resultaten kunnen we verifiëren dat we erin geslaagd zijn de rijen te filteren om alleen de rijen over te laten met een som van hun uren die hoger is dan onze drempel.

Evenzo, als we de werkdatum met het hoogste aantal werkende werknemers willen filteren om een ​​drempel van 10 uur te overschrijden, selecteren we de werkdatumexpressie. Vervolgens gebruiken we de SUM-functie met de uren en groeperen we de rijen op basis van de werkdatum.

De opdracht is als volgt:

SELECTEER werkdatum, SUM(uren) ALS hoogste_uren_gewerkt VAN werknemers GROEP OP werkdatum MET som(uren) > 10;

Na het uitvoeren van de opdracht laten de resultaten zien dat slechts één werkdatum de som van het totale aantal uren heeft dat de drempel overschrijdt:

Conclusie

De MySQL HAVING-clausule wordt gebruikt wanneer u een filterquery wilt uitvoeren met behulp van een statistische functie. Het wordt gecombineerd met de GROUP BY-component om een ​​meer specifieke query uit te voeren. Dit bericht beschrijft alles over de MySQL HAVING-clausule waarbij de som groter is dan de drempel. Met de gegeven voorbeelden begrijpt u nu hoe u met de MySQL HAVING-component moet werken.