Kako koristiti klauzulu MySQL HAVING gdje je zbroj veći od praga

Kako Koristiti Klauzulu Mysql Having Gdje Je Zbroj Veci Od Praga



Kada radite s MySQL bazom podataka, često ćete imati slučajeve kada želite filtrirati vrijednosti. Iako možete koristiti klauzulu WHERE, ona ne radi uvijek za sve instance. Klauzula HAVING koristi se kada želite izvršiti upit filtra pomoću agregatne funkcije i primijeniti grupiranja.

Klauzula HAVING oslanja se na klauzulu GROUP BY u svom filtru i izvršava upit na temelju navedenog uvjeta. Ograničava filtar na temelju uvjeta i vraća odabrane grupe samo ako ispunjavaju uvjet. Imamo primjere korištenja klauzule MySQL HAVING gdje zbroj premašuje prag. Na taj ćete način svladati kako ga koristiti na kraju današnjeg posta.







Kako koristiti klauzulu MySQL HAVING gdje je zbroj veći od praga

Primijenite MySQL klauzulu HAVING s klauzulom GROUP BY. Sintaksa mu je sljedeća:



SELECT izraz1, .. izraz_n, agregatna_func (izraz) FROM table_name GROUP BY izraz HAVING ;

Možete koristiti različite agregatne funkcije uključujući SUM(), COUNT(), MIN(), MAX() i AVG(). Imajte na umu da svaki izraz koji se ne koristi s agregatnom funkcijom mora biti spomenut uz klauzulu GROUP BY.



Što se tiče uvjeta, on se primjenjuje na agregirane rezultate gdje navedete prag koji želite provjeriti s uvjetom. Na primjer, možete primijeniti funkciju SUM() i provjeriti zadovoljava li izraz prag od 10. Razumjet ćemo više o tome u navedenim primjerima.





Da bismo razumjeli kako funkcionira klauzula HAVING, stvorimo primjer baze podataka s kojom ćemo raditi. Našu bazu podataka nazivamo 'registar'.



Stvorimo i tablicu pod nazivom 'radnici' koja će sadržavati različite stupce i vrste podataka. Ovdje radimo s podacima radnika kao što su ime, sati, datum rada itd.

Provjerom opisa naše tablice možemo potvrditi da su svi stupci uspješno kreirani.

Vrijednosti ubacujemo u našu tablicu. Imamo različite radnike koji rade u različite sate i dane. Koristeći ove podatke, možemo primijeniti klauzulu HAVING tamo gdje zbroj premašuje prag.

Za naš prvi primjer, razmotrimo slučaj u kojem želimo pronaći radnike koji su radili najviše sati. Za klauzulu HAVING uključite agregatnu funkciju zbroja za sate. U klauzuli GROUP BY grupiramo retke pomoću retka imena kako bismo lakše klasificirali radnike s ukupnim brojem sati većim od praga.

Ako imamo prag za ukupni broj sati od 7, izvršavamo našu naredbu na sljedeći način:

SELECT ime, SUM(sati) KAO total_hours_per_person FROM radnika GRUPIRAJ PO imenu HAVING sum(hours) > 7;

Izvršavanjem naredbe dobivamo izlaz koji sadrži dva retka budući da su samo dva radnika premašila prag naveden u klauzuli HAVING.

Pretpostavimo da želimo klasificirati odjele kako bismo vidjeli one s radnicima koji rade u satima većim od praga od 7 sati. Odaberemo odjel, zatim koristimo agregatnu funkciju SUM sa satima i grupiramo retke pomoću izraza odjela.

Naša naredba je sljedeća:

ODABIR odjela, SUM(sati) KAO ukupni_sati_po_odjelu FROM radnika GROUP BY odjel HAVING zbroj(sati) > 7;

Iz rezultata možemo potvrditi da smo uspjeli filtrirati retke kako bismo ostavili samo one čiji je zbroj sati veći od našeg praga.

Slično tome, ako želimo filtrirati radni datum s najvećim brojem zaposlenih radnika koji premašuju prag od 10 sati, odabiremo izraz radnog datuma. Zatim koristimo funkciju SUM sa satima i grupiramo retke pomoću radnog datuma.

Naredba je sljedeća:

ODABERITE radni datum, SUM(sati) KAO najveći_sati_odrađeni FROM radnika GRUPIRAJ PO radnom datumu IMAJU zbroj(sati) > 10;

Nakon izvršenja naredbe, rezultati pokazuju da samo jedan radni datum ima zbroj ukupnih sati koji premašuju prag:

Zaključak

Klauzula MySQL HAVING koristi se kada želite izvršiti upit za filtriranje pomoću agregatne funkcije. Kombinira se s klauzulom GROUP BY za izvođenje specifičnijeg upita. Ovaj post detaljno opisuje sve o klauzuli MySQL HAVING gdje je zbroj veći od praga. S navedenim primjerima sada razumijete kako raditi s klauzulom MySQL HAVING.