Hur man använder MySQL HAVING-klausulen där summan är större än tröskeln

Hur Man Anvander Mysql Having Klausulen Dar Summan Ar Storre An Troskeln



När du arbetar med MySQL-databas kommer du ofta att ha instanser där du vill filtrera värdena. Även om du kan använda WHERE-satsen, fungerar den inte alltid för alla instanser. HAVING-satsen används när du vill köra en filterfråga med en aggregatfunktion och tillämpa grupperingarna.

HAVING-satsen förlitar sig på GROUP BY-satsen i sitt filter och exekverar frågan baserat på det angivna villkoret. Det begränsar filtret baserat på villkoret och returnerar endast de valda grupperna om de uppfyller villkoret. Vi har exempel på att använda MySQL HAVING-satsen där summan överstiger tröskeln. På så sätt kommer du att bemästra hur du använder det i slutet av dagens inlägg.







Hur man använder MySQL HAVING-klausulen där summan är större än tröskeln

Du tillämpar MySQL HAVING-satsen med GROUP BY-satsen. Dess syntax är följande:



VÄLJ uttryck1, .. expression_n, aggregate_func (uttryck) FRÅN tabellnamn GRUPP AV uttryck HAVING ;

Du kan använda de olika aggregatfunktionerna inklusive SUM(), COUNT(), MIN(), MAX() och AVG(). Observera att alla uttryck som inte används med aggregatfunktionen måste nämnas med GROUP BY-satsen.



När det gäller villkoret tillämpas det på de aggregerade resultaten där du anger det tröskelvärde som du vill kontrollera med villkoret. Du kan till exempel använda SUM()-funktionen och verifiera om uttrycket når tröskelvärdet 10. Vi kommer att förstå mer om det i de medföljande exemplen.





För att förstå hur HAVING-satsen fungerar, låt oss skapa en exempeldatabas som vi kommer att arbeta med. Vi namnger vår databas som 'register.'



Låt oss också skapa en tabell med namnet 'arbetare' som innehåller våra olika kolumner och datatyper. Här arbetar vi med arbetarnas data som namn, timmar, arbetsdatum etc.

Genom att kontrollera beskrivningen av vår tabell kan vi bekräfta att alla kolumner har skapats framgångsrikt.

Vi lägger in värdena i vår tabell. Vi har olika arbetare som arbetar på olika tider och dagar. Med hjälp av dessa data kan vi tillämpa HAVING-satsen där summan överstiger tröskeln.

För vårt första exempel, låt oss överväga ett fall där vi vill hitta de arbetare som arbetade flest timmar. För HAVING-satsen, inkludera den totala summafunktionen för timmar. I GROUP BY-satsen grupperar vi raderna med hjälp av namnraden för att hjälpa till att klassificera arbetarna med totalt antal timmar som är större än tröskeln.

Om vi ​​har vår tröskel för det totala antalet timmar som 7, utför vi vårt kommando enligt följande:

VÄLJ namn, SUM(timmar) SOM total_timmar_per_person FRÅN arbetare GRUPP EFTER namn HAR summa(timmar) > 7;

Genom att utföra kommandot får vi en utdata som innehåller två rader eftersom endast två arbetare överskred tröskeln som anges i HAVING-satsen.

Anta att vi vill klassificera avdelningarna för att se de med arbetare som arbetar i timmar som är högre än en tröskel på 7 timmar. Vi väljer avdelning, använder sedan funktionen SUM aggregat med timmarna och grupperar raderna med avdelningsuttrycket.

Vårt kommando är följande:

VÄLJ avdelning, SUM(timmar) AS total_hours_per_department FRÅN arbetare GRUPP EFTER avdelning SOM HAR summa(timmar) > 7;

Från resultaten kan vi verifiera att vi lyckades filtrera raderna så att de bara lämnar de med en summa av sina timmar som överstiger vårt tröskelvärde.

På liknande sätt, om vi vill filtrera arbetsdatumet med det högsta antalet arbetande arbetare för att överskrida ett tröskelvärde på 10 timmar, väljer vi arbetsdatumuttrycket. Sedan använder vi SUM-funktionen med timmarna och grupperar raderna med arbetsdatumet.

Kommandot är som följer:

VÄLJ arbetsdatum, SUM(timmar) SOM högsta_timmar_arbetade FRÅN arbetare GRUPP EFTER arbetsdatum ATT HA summa(timmar) > 10;

Efter att ha utfört kommandot visar resultaten att endast ett arbetsdatum har sin summa av totala timmar som överskrider tröskeln:

Slutsats

MySQL HAVING-satsen används när du vill köra en filterfråga med en aggregatfunktion. Den kombineras med GROUP BY-satsen för att exekvera en mer specifik fråga. Det här inlägget detaljerade allt om MySQL HAVING-satsen där summan är större än tröskeln. Med de medföljande exemplen förstår du nu hur du arbetar med MySQL HAVING-satsen.