Sådan bruges MySQL HAVING-klausulen, hvor summen er større end tærsklen

Sadan Bruges Mysql Having Klausulen Hvor Summen Er Storre End Taersklen



Når du arbejder med MySQL-database, vil du ofte have tilfælde, hvor du vil filtrere værdierne. Selvom du kan bruge WHERE-klausulen, virker den ikke altid i alle tilfælde. HAVING-sætningen bruges, når du vil udføre en filterforespørgsel ved hjælp af en aggregeringsfunktion og anvende grupperingerne.

HAVING-udtrykket er afhængigt af GROUP BY-udtrykket i sit filter og udfører forespørgslen baseret på den angivne betingelse. Det begrænser filteret baseret på betingelsen og returnerer kun de valgte grupper, hvis de opfylder betingelsen. Vi har eksempler på brug af MySQL HAVING-klausulen, hvor summen overstiger tærsklen. På den måde vil du mestre, hvordan du bruger det i slutningen af ​​dagens indlæg.







Sådan bruges MySQL HAVING-klausulen, hvor summen er større end tærsklen

Du anvender MySQL HAVING-klausulen med GROUP BY-klausulen. Dens syntaks er som følger:



VÆLG udtryk1, .. udtryk_n, aggregat_func (udtryk) FRA tabelnavn GRUPPE VED udtryk, DER HAR ;

Du kan bruge de forskellige aggregerede funktioner, herunder SUM(), COUNT(), MIN(), MAX() og AVG(). Bemærk, at ethvert udtryk, der ikke bruges sammen med aggregatfunktionen, skal nævnes med GROUP BY-udtrykket.



Hvad angår betingelsen, anvendes den på de aggregerede resultater, hvor du angiver den tærskel, som du vil kontrollere med betingelsen. For eksempel kan du anvende funktionen SUM() og kontrollere, om udtrykket når en tærskel på 10. Vi vil forstå mere om det i de medfølgende eksempler.





For at forstå, hvordan HAVING-klausulen fungerer, lad os oprette en prøvedatabase, som vi vil arbejde med. Vi navngiver vores database som 'register.'



Lad os også oprette en tabel med navnet 'arbejdere', der indeholder vores forskellige kolonner og datatyper. Her arbejder vi med arbejdernes data såsom navn, timer, arbejdsdato mv.

Ved at kontrollere beskrivelsen af ​​vores tabel kan vi bekræfte, at alle kolonner er oprettet med succes.

Vi indsætter værdierne i vores tabel. Vi har forskellige medarbejdere, der arbejder på forskellige tidspunkter og dage. Ved at bruge disse data kan vi anvende HAVING-sætningen, hvor summen overstiger tærsklen.

For vores første eksempel, lad os overveje et tilfælde, hvor vi ønsker at finde de arbejdere, der arbejdede flest timer. For HAVING-udtrykket skal du inkludere den samlede sumfunktion for timer. I GROUP BY-sætningen grupperer vi rækkerne ved hjælp af navnerækken for at hjælpe med at klassificere arbejderne med samlede timer, der er større end tærsklen.

Hvis vi har vores tærskel for det samlede antal timer som 7, udfører vi vores kommando som følger:

VÆLG navn, SUM(timer) AS total_hours_per_person FRA arbejdere GRUPPER EFTER navn, HAR sum(timer) > 7;

Ved at udføre kommandoen får vi et output, der indeholder to rækker, da kun to arbejdere overskred den tærskel, der er angivet i HAVING-sætningen.

Antag, at vi ønsker at klassificere afdelingerne for at se dem med arbejdere, der arbejder i timer, der er større end en tærskel på 7 timer. Vi vælger afdelingen, bruger derefter SUM-aggregatfunktionen med timerne og grupperer rækkerne ved hjælp af afdelingsudtrykket.

Vores kommando er som følger:

VÆLG afdeling, SUM(timer) AS total_hours_per_department FRA arbejdere GRUPPE FOR AFDELING HAR sum(timer) > 7;

Ud fra resultaterne kan vi bekræfte, at vi formåede at filtrere rækkerne til kun at efterlade dem med en sum af deres timer, der er større end vores tærskel.

Tilsvarende, hvis vi ønsker at filtrere arbejdsdatoen med det højeste antal arbejdende arbejdere til at overskride en tærskel på 10 timer, vælger vi arbejdsdatoudtrykket. Derefter bruger vi SUM-funktionen med timerne og grupperer rækkerne ved hjælp af arbejdsdatoen.

Kommandoen er som følger:

VÆLG arbejdsdato, SUM(timer) SOM højeste_timer_arbejdet FRA arbejdere GRUPPE EFTER arbejdsdato, DER HAR sum(timer) > 10;

Efter udførelse af kommandoen viser resultaterne, at kun én arbejdsdato har sin sum af de samlede timer, der overstiger tærsklen:

Konklusion

MySQL HAVING-sætningen bruges, når du vil udføre en filterforespørgsel ved hjælp af en aggregeret funktion. Den er kombineret med GROUP BY-sætningen for at udføre en mere specifik forespørgsel. Dette indlæg detaljerede alt om MySQL HAVING-klausulen, hvor summen er større end tærsklen. Med de medfølgende eksempler forstår du nu, hvordan du arbejder med MySQL HAVING-klausulen.