Kuidas kasutada MySQL-i HAVING-klauslit, kui summa on suurem kui lävi

Kuidas Kasutada Mysql I Having Klauslit Kui Summa On Suurem Kui Lavi



MySQL-i andmebaasiga töötades on sageli juhtumeid, kus soovite väärtusi filtreerida. Kuigi saate kasutada WHERE-klauslit, ei tööta see alati kõigil juhtudel. HAVING-klauslit kasutatakse siis, kui soovite täita filtripäringu, kasutades koondfunktsiooni ja rakendada rühmitusi.

HAVING-klausel tugineb oma filtris olevale klauslile GROUP BY ja täidab päringu esitatud tingimuse alusel. See piirab filtrit tingimuse alusel ja tagastab valitud rühmad ainult siis, kui need vastavad tingimusele. Meil on näiteid MySQL HAVING-klausli kasutamise kohta, kus summa ületab läve. Nii saate teada, kuidas seda tänase postituse lõpus kasutada.







Kuidas kasutada MySQL-i HAVING-klauslit, kui summa on suurem kui lävi

Rakendate MySQL HAVING-klauslit koos klausliga GROUP BY. Selle süntaks on järgmine:



SELECT avaldis1, .. avaldis_n, aggregate_func (avaldis) FROM tabeli_nimi GROUP BY avaldis HAVING ;

Saate kasutada erinevaid koondfunktsioone, sealhulgas SUM(), COUNT(), MIN(), MAX() ja AVG(). Pange tähele, et kõik avaldised, mida ei kasutata koos koondfunktsiooniga, tuleb mainida koos klausliga GROUP BY.



Mis puudutab tingimust, siis seda rakendatakse koondtulemustele, kus määrate läve, mida soovite tingimusega kontrollida. Näiteks saate rakendada funktsiooni SUM() ja kontrollida, kas avaldis vastab künnisele 10. Täpsemalt saame sellest aru antud näidetes.





Et mõista, kuidas klausel HAVING töötab, loome näidisandmebaasi, millega töötame. Nimetame oma andmebaasi kui 'registrit'.



Loome ka tabeli nimega 'töötajad', mis sisaldab meie erinevaid veerge ja andmetüüpe. Siin töötame töötajate andmetega, nagu nimi, tunnid, töökuupäev jne.

Kontrollides meie tabeli kirjeldust, saame kinnitada, et kõik veerud on edukalt loodud.

Sisestame väärtused oma tabelisse. Meil on erinevad töötajad, kes töötavad erinevatel kellaaegadel ja päevadel. Neid andmeid kasutades saame rakendada HAVING-klauslit, kui summa ületab läve.

Esimese näitena vaatleme juhtumit, kus tahame leida töötajaid, kes töötasid kõige rohkem tunde. HAVING-klausli jaoks lisage tundide koondfunktsioon. Klauslis GROUP BY rühmitame read nimerida kasutades, et aidata klassifitseerida töötajaid, kelle töötundide koguarv ületab läve.

Kui meie kogutundide lävi on 7, täidame oma käsu järgmiselt:

SELECT nimi, SUM(tunnid) AS kokku_tunnid_inimese kohta FROM töötajatest GROUP BY nime järgi HAVING summa(tunnid) > 7;

Käsu käivitamisel saame väljundi, mis sisaldab kahte rida, kuna ainult kaks töötajat ületasid HAVING-klauslis määratud läve.

Oletame, et tahame klassifitseerida osakonnad, et näha neid, kus on töötajad, kes töötavad rohkem kui 7 tundi. Valime osakonna, seejärel kasutame koondfunktsiooni SUM koos tundidega ja rühmitame read osakonnaavaldise abil.

Meie käsk on järgmine:

SELECT osakond, SUM(tunnid) AS kokku_tunnid_osakonna kohta FROM töötajatest GROUP BY osakonna järgi HAVING summa(tunnid) > 7;

Tulemuste põhjal saame kinnitada, et meil õnnestus read filtreerida, et jätta ainult need, mille tundide summa ületab meie läve.

Samamoodi, kui tahame filtreerida töökuupäeva, kus töötavate töötajate arv ületab 10 tundi, valime töökuupäeva avaldise. Seejärel kasutame tundidega funktsiooni SUM ja rühmitame read töökuupäeva alusel.

Käsk on järgmine:

SELECT töökuupäev, SUM(tunnid) AS kõrgeim_töötatud_tundide arv FROM töötajatelt GROUP BY töökuupäev HAAVING summa(tunnid) > 10;

Pärast käsu täitmist näitavad tulemused, et ainult ühel töökuupäeval on läve ületav tundide kogusumma:

Järeldus

MySQL HAVING-klauslit kasutatakse siis, kui soovite täita filtripäringu koondfunktsiooni abil. Täpsema päringu täitmiseks kombineeritakse see klausliga GROUP BY. See postitus kirjeldas üksikasjalikult kõike MySQL HAVING-klausli kohta, kui summa on suurem kui lävi. Esitatud näidete abil saate nüüd aru, kuidas töötada MySQL HAVING-klausliga.