Kā izmantot MySQL HAVING klauzulu, ja summa ir lielāka par slieksni

Ka Izmantot Mysql Having Klauzulu Ja Summa Ir Lielaka Par Slieksni



Strādājot ar MySQL datu bāzi, bieži vien būs gadījumi, kad vēlaties filtrēt vērtības. Lai gan varat izmantot WHERE klauzulu, tā ne vienmēr darbojas visos gadījumos. Klauzula HAVING tiek izmantota, ja vēlaties izpildīt filtra vaicājumu, izmantojot apkopošanas funkciju, un lietot grupējumus.

Klauzula HAVING paļaujas uz klauzulu GROUP BY savā filtrā un izpilda vaicājumu, pamatojoties uz sniegto nosacījumu. Tas ierobežo filtru, pamatojoties uz nosacījumu, un atgriež atlasītās grupas tikai tad, ja tās atbilst nosacījumam. Mums ir piemēri MySQL HAVING klauzulas izmantošanai, ja summa pārsniedz slieksni. Tādā veidā jūs apgūsit, kā to izmantot šodienas ziņas beigās.







Kā izmantot MySQL HAVING klauzulu, ja summa ir lielāka par slieksni

Jūs lietojat klauzulu MySQL HAVING ar klauzulu GROUP BY. Tās sintakse ir šāda:



SELECT izteiksme1, .. izteiksme_n, aggregate_func (izteiksme) FROM tabulas_nosaukums GROUP BY izteiksme HAVING ;

Varat izmantot dažādas apkopošanas funkcijas, tostarp SUM(), COUNT(), MIN(), MAX() un AVG(). Ņemiet vērā, ka jebkura izteiksme, kas netiek izmantota ar apkopošanas funkciju, ir jānorāda ar klauzulu GROUP BY.



Kas attiecas uz nosacījumu, tas tiek lietots apkopotajiem rezultātiem, kur norādāt slieksni, kuru vēlaties pārbaudīt ar nosacījumu. Piemēram, varat lietot funkciju SUM() un pārbaudīt, vai izteiksme atbilst slieksnim 10. Mēs par to vairāk sapratīsim sniegtajos piemēros.





Lai saprastu, kā darbojas klauzula HAVING, izveidosim datu bāzes paraugu, ar kuru mēs strādāsim. Mēs nosaucam savu datubāzi kā “reģistrs”.



Izveidosim arī tabulu ar nosaukumu “darbinieki”, lai tajā būtu ietvertas mūsu dažādās kolonnas un datu veidi. Šeit mēs strādājam ar darbinieku datiem, piemēram, vārdu, uzvārdu, stundām, darba datumu utt.

Pārbaudot mūsu tabulas aprakstu, mēs varam pārliecināties, ka visas kolonnas ir veiksmīgi izveidotas.

Mēs ievietojam vērtības savā tabulā. Mums ir dažādi darbinieki, kuri strādā dažādās stundās un dienās. Izmantojot šos datus, mēs varam piemērot HAVING klauzulu, ja summa pārsniedz slieksni.

Pirmajā piemērā aplūkosim gadījumu, kad mēs vēlamies atrast darbiniekus, kuri strādāja visvairāk stundu. Klauzulai HAVING iekļaujiet stundu summēšanas funkciju. Klauzulā GROUP BY mēs grupējam rindas, izmantojot nosaukumu rindu, lai palīdzētu klasificēt darbiniekus ar kopējo stundu skaitu, kas pārsniedz slieksni.

Ja mūsu kopējais stundu slieksnis ir 7, mēs izpildām komandu šādi:

SELECT nosaukums, SUM(stundas) AS kopējais_stundas_uz cilvēku NO strādniekiem GROUP BY name HAVING summa(stundas) > 7;

Izpildot komandu, mēs iegūstam izvadi, kurā ir divas rindas, jo tikai divi darbinieki pārsniedza slieksni, kas norādīts klauzulā HAVING.

Pieņemsim, ka mēs vēlamies klasificēt nodaļas, lai redzētu tos darbiniekus, kuru darba stundu skaits pārsniedz 7 stundu slieksni. Mēs atlasām nodaļu, pēc tam izmantojam SUM apkopošanas funkciju ar stundām un grupējam rindas, izmantojot nodaļas izteiksmi.

Mūsu komanda ir šāda:

IZVĒLĒTIES nodaļu, SUM(stundas) AS kopējās_stundas_uz nodaļu FROM darbiniekiem GROUP BY BY departaments HAVING summa(stundas) > 7;

No rezultātiem mēs varam pārbaudīt, vai mums izdevās filtrēt rindas, lai atstātu tikai tās rindas, kuru stundu summa pārsniedz mūsu slieksni.

Līdzīgi, ja mēs vēlamies filtrēt darba datumu ar vislielāko strādājošo skaitu, lai pārsniegtu 10 stundu slieksni, mēs atlasām darba datuma izteiksmi. Pēc tam mēs izmantojam funkciju SUM ar stundām un grupējam rindas, izmantojot darba datumu.

Komanda ir šāda:

IZVĒLĒTIES darba datumu, SUM(stundas) AS augstākais_nostrādātais_stundas NO strādniekiem GROUP BY darba datuma HAVING summa(stundas) > 10;

Pēc komandas izpildes rezultāti parāda, ka tikai vienā darba datumā ir stundu kopsumma, kas pārsniedz slieksni:

Secinājums

MySQL HAVING klauzula tiek izmantota, ja vēlaties izpildīt filtra vaicājumu, izmantojot apkopošanas funkciju. Tas tiek apvienots ar klauzulu GROUP BY, lai izpildītu konkrētāku vaicājumu. Šajā ziņojumā ir aprakstīts viss par MySQL HAVING klauzulu, kur summa ir lielāka par slieksni. Izmantojot sniegtos piemērus, jūs tagad saprotat, kā strādāt ar MySQL HAVING klauzulu.