Kaip naudoti MySQL HAVING sąlygą, kai suma yra didesnė už slenkstį

Kaip Naudoti Mysql Having Salyga Kai Suma Yra Didesne Uz Slenksti



Dirbdami su MySQL duomenų baze dažnai turėsite atvejų, kai norėsite filtruoti reikšmes. Nors galite naudoti WHERE sąlygą, ji ne visada veikia visais atvejais. Sąlyga HAVING naudojama, kai norite vykdyti filtro užklausą naudodami agregavimo funkciją ir taikyti grupes.

Sąlyga HAVING remiasi sąlyga GROUP BY savo filtre ir vykdo užklausą pagal pateiktą sąlygą. Jis apriboja filtrą pagal sąlygą ir grąžina tik pasirinktas grupes, jei jos atitinka sąlygą. Turime MySQL HAVING sąlygos naudojimo pavyzdžių, kai suma viršija slenkstį. Tokiu būdu išmoksite jį naudoti šiandienos įrašo pabaigoje.







Kaip naudoti MySQL HAVING sąlygą, kai suma yra didesnė už slenkstį

MySQL HAVING sąlygą taikote kartu su sąlyga GROUP BY. Jo sintaksė yra tokia:



SELECT reiškinys1, .. išraiška_n, agregate_funkcija (išraiška) FROM lentelės_pavadinimas GROUP BY išraiška HAVING ;

Galite naudoti įvairias agregavimo funkcijas, įskaitant SUM(), COUNT(), MIN(), MAX() ir AVG(). Atminkite, kad bet kokia išraiška, kuri nenaudojama su agregate funkcija, turi būti paminėta su sąlyga GROUP BY.



Kalbant apie sąlygą, ji taikoma suvestiniams rezultatams, kai nurodote slenkstį, kurį norite patikrinti su sąlyga. Pavyzdžiui, galite pritaikyti funkciją SUM() ir patikrinti, ar išraiška atitinka 10 slenkstį. Daugiau apie tai suprasime pateiktuose pavyzdžiuose.





Norėdami suprasti, kaip veikia sąlyga HAVING, sukurkime pavyzdinę duomenų bazę, su kuria dirbsime. Savo duomenų bazę pavadiname „registru“.



Taip pat sukurkime lentelę pavadinimu „darbuotojai“, kurioje būtų skirtingi stulpeliai ir duomenų tipai. Čia dirbame su darbuotojų duomenimis, tokiais kaip vardas, pavardė, valandos, darbo data ir kt.

Patikrinę mūsų lentelės aprašymą, galime patvirtinti, kad visi stulpeliai sukurti sėkmingai.

Vertes įterpiame į savo lentelę. Turime skirtingus darbuotojus, kurie dirba skirtingomis valandomis ir dienomis. Naudodami šiuos duomenis galime pritaikyti sąlygą HAVING, kai suma viršija slenkstį.

Pirmajame pavyzdyje panagrinėkime atvejį, kai norime rasti daugiausia valandų dirbusius darbuotojus. Į sąlygą HAVING įtraukite sumos sumavimo funkciją valandoms. Sąlygoje GROUP BY sugrupuojame eilutes naudodami pavadinimo eilutę, kad būtų lengviau klasifikuoti darbuotojus, kurių bendras valandų skaičius viršija slenkstį.

Jei bendras valandų skaičius yra 7, komandą vykdome taip:

SELECT pavadinimas, SUM(valandos) AS viso_valandų_asmeniui FROM darbuotojai GRUPĖ PAGAL vardą HAVING suma(valandos) > 7;

Vykdydami komandą gauname išvestį, kurioje yra dvi eilutės, nes tik du darbuotojai viršijo slenkstį, nurodytą sąlygoje HAVING.

Tarkime, kad norime suskirstyti skyrius, kad pamatytume tuos, kuriuose dirba darbuotojai, kurių darbo valandų skaičius viršija 7 valandų slenkstį. Mes pasirenkame skyrių, tada naudojame SUM agregate funkciją su valandomis ir sugrupuojame eilutes naudodami skyriaus išraišką.

Mūsų komanda yra tokia:

PASIRINKITE skyrių, SUM(valandos) AS viso_valandų_vienam_departamentui FROM darbuotojai GROUP BY departamentas HAVING suma(valandos) > 7;

Iš rezultatų galime patvirtinti, kad mums pavyko filtruoti eilutes, kad paliktų tik tas, kurių valandų suma viršija mūsų slenkstį.

Panašiai, jei norime filtruoti darbo datą, kurioje dirba didžiausias darbuotojų skaičius, kad viršytų 10 valandų slenkstį, pasirenkame darbo datos išraišką. Tada naudojame funkciją SUM su valandomis ir sugrupuojame eilutes naudodami darbo datą.

Komanda yra tokia:

PASIRINKITE darbo datą, SUM(valandos) AS didžiausios_dirbtos_valandos FROM darbuotojai GRUPĖ PAGAL darbo datą HAVING suma(valandos) > 10;

Įvykdžius komandą, rezultatai rodo, kad tik viena darbo diena turi bendrą valandų sumą, viršijančią slenkstį:

Išvada

MySQL HAVING sąlyga naudojama, kai norite vykdyti filtro užklausą naudodami agregavimo funkciją. Jis derinamas su sąlyga GROUP BY, kad būtų atlikta konkretesnė užklausa. Šiame įraše išsamiai aprašyta viskas apie MySQL HAVING sąlygą, kai suma yra didesnė už slenkstį. Iš pateiktų pavyzdžių dabar suprasite, kaip dirbti su MySQL HAVING sąlyga.