Kako uporabljati klavzulo MySQL HAVING, kjer je vsota večja od praga

Kako Uporabljati Klavzulo Mysql Having Kjer Je Vsota Vecja Od Praga



Ko delate z bazo podatkov MySQL, boste pogosto imeli primere, ko želite filtrirati vrednosti. Čeprav lahko uporabite stavek WHERE, ne deluje vedno za vse primerke. Klavzula HAVING se uporablja, ko želite izvesti filtrirno poizvedbo z uporabo združevalne funkcije in uporabiti grupiranja.

Klavzula HAVING se opira na klavzulo GROUP BY v svojem filtru in izvede poizvedbo na podlagi podanega pogoja. Filter omeji na podlagi pogoja in vrne samo izbrane skupine, če izpolnjujejo pogoj. Imamo primere uporabe klavzule MySQL HAVING, kjer vsota presega prag. Tako boste ob koncu današnje objave obvladali, kako ga uporabljati.







Kako uporabljati klavzulo MySQL HAVING, kjer je vsota večja od praga

Klavzulo MySQL HAVING uporabite s klavzulo GROUP BY. Njegova sintaksa je naslednja:



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

Uporabite lahko različne agregatne funkcije, vključno s SUM(), COUNT(), MIN(), MAX() in AVG(). Upoštevajte, da je treba vse izraze, ki niso uporabljeni s funkcijo združevanja, omeniti s klavzulo GROUP BY.



Kar zadeva pogoj, se uporablja za združene rezultate, kjer določite prag, ki ga želite preveriti s pogojem. Uporabite lahko na primer funkcijo SUM() in preverite, ali izraz dosega prag 10. Več o tem bomo izvedeli v navedenih primerih.





Da bi razumeli, kako deluje klavzula HAVING, ustvarimo vzorčno bazo podatkov, s katero bomo delali. Našo zbirko podatkov imenujemo »register«.



Ustvarimo tudi tabelo z imenom »delavci«, ki bo vsebovala naše različne stolpce in vrste podatkov. Tukaj delamo s podatki delavcev, kot so ime, ure, delovni datum itd.

Če preverimo opis naše tabele, lahko potrdimo, da so vsi stolpci uspešno ustvarjeni.

Vrednosti vstavimo v našo tabelo. Imamo različne delavce, ki delajo ob različnih urah in dnevih. Z uporabo teh podatkov lahko uporabimo klavzulo HAVING, kjer vsota presega prag.

Za naš prvi primer si oglejmo primer, ko želimo najti delavce, ki so delali največ ur. Za stavek HAVING vključite agregatno funkcijo za ure. V klavzuli GROUP BY združujemo vrstice z uporabo vrstice z imenom, da pomagamo razvrstiti delavce s skupnim številom ur, ki presegajo prag.

Če imamo prag za skupno število ur 7, izvedemo naš ukaz na naslednji način:

IZBERI ime, SUM(ure) KOT total_hours_per_person FROM delavcev GROUP BY name HAVING sum(hours) > 7;

Z izvedbo ukaza dobimo izhod, ki vsebuje dve vrstici, saj sta samo dva delavca presegla prag, ki je določen v klavzuli HAVING.

Recimo, da želimo razvrstiti oddelke, da vidimo tiste z delavci, ki delajo v urah, ki presegajo prag 7 ur. Izberemo oddelek, nato uporabimo agregatno funkcijo SUM z urami in grupiramo vrstice z izrazom oddelek.

Naš ukaz je naslednji:

IZBERITE oddelek, SUM(ure) KOT skupne_ure_na_oddelek FROM delavcev SKUPINA PO oddelku, IMAJO vsoto(ur) > 7;

Iz rezultatov lahko preverimo, ali nam je uspelo filtrirati vrstice, da pustimo samo tiste, katerih vsota ur je višja od našega praga.

Podobno, če želimo filtrirati delovni datum z največjim številom zaposlenih delavcev, ki presegajo prag 10 ur, izberemo izraz delovnega datuma. Nato uporabimo funkcijo SUM z urami in združimo vrstice z uporabo delovnega datuma.

Ukaz je naslednji:

IZBERITE delovni datum, SUM(ure) KOT najvišje_delovne_ure OD delavcev ZGRUPI PO delovnem datumu, KI IMAJO vsoto(ur) > 10;

Po izvedbi ukaza rezultati pokažejo, da ima samo en delovni datum vsoto skupnih ur, ki presegajo prag:

Zaključek

Klavzula MySQL HAVING se uporablja, ko želite izvesti filtrirno poizvedbo z uporabo agregatne funkcije. Kombiniran je s klavzulo GROUP BY za izvedbo bolj specifične poizvedbe. Ta objava je podrobno opisala vse o klavzuli MySQL HAVING, kjer je vsota večja od praga. S podanimi primeri zdaj razumete, kako delati s klavzulo MySQL HAVING.