Cum să utilizați clauza MySQL HAVING în cazul în care suma este mai mare decât pragul

Cum Sa Utilizati Clauza Mysql Having In Cazul In Care Suma Este Mai Mare Decat Pragul



Când lucrați cu baza de date MySQL, veți avea adesea cazuri în care doriți să filtrați valorile. Deși puteți folosi clauza WHERE, aceasta nu funcționează întotdeauna pentru toate cazurile. Clauza HAVING este folosită atunci când doriți să executați o interogare de filtru folosind o funcție de agregare și să aplicați grupările.

Clauza HAVING se bazează pe clauza GROUP BY din filtrul său și execută interogarea pe baza condiției furnizate. Limitează filtrul în funcție de condiție și returnează grupurile selectate numai dacă îndeplinesc condiția. Avem exemple de utilizare a clauzei MySQL HAVING în care suma depășește pragul. În acest fel, vei stăpâni cum să-l folosești la sfârșitul postării de astăzi.







Cum să utilizați clauza MySQL HAVING în cazul în care suma este mai mare decât pragul

Aplicați clauza MySQL HAVING cu clauza GROUP BY. Sintaxa sa este următoarea:



SELECT expression1, .. expression_n, aggregate_func (expresie) FROM table_name GROUP BY expresie HAVING ;

Puteți utiliza diferite funcții de agregare, inclusiv SUM(), COUNT(), MIN(), MAX() și AVG(). Rețineți că orice expresie care nu este utilizată cu funcția de agregare trebuie menționată cu clauza GROUP BY.



În ceea ce privește condiția, se aplică rezultatelor agregate unde specificați pragul pe care doriți să îl verificați cu condiția. De exemplu, puteți aplica funcția SUM() și puteți verifica dacă expresia îndeplinește un prag de 10. Vom înțelege mai multe despre aceasta în exemplele furnizate.





Pentru a înțelege cum funcționează clauza HAVING, să creăm un exemplu de bază de date cu care vom lucra. Numim baza noastră de date drept „registru”.



Să creăm, de asemenea, un tabel numit „lucrători” care să conțină diferitele noastre coloane și tipuri de date. Aici, lucrăm cu datele lucrătorilor, cum ar fi numele, orele, data de lucru etc.

Verificând descrierea tabelului nostru, putem confirma că toate coloanele sunt create cu succes.

Inserăm valorile în tabelul nostru. Avem lucrători diferiți care lucrează în ore și zile diferite. Folosind aceste date, putem aplica clauza HAVING în cazul în care suma depășește pragul.

Pentru primul nostru exemplu, să luăm în considerare un caz în care dorim să găsim lucrătorii care au lucrat cele mai multe ore. Pentru clauza HAVING, includeți funcția de sumă agregată pentru ore. În clauza GROUP BY, grupăm rândurile folosind rândul de nume pentru a ajuta la clasificarea lucrătorilor cu orele totale care sunt mai mari decât pragul.

Dacă pragul nostru pentru orele totale este de 7, ne executăm comanda după cum urmează:

SELECTAȚI numele, SUM(ore) AS total_hours_per_person FROM lucrători GROUP BY nume HAVING sum(hours) > 7;

Prin executarea comenzii, obținem o ieșire care conține două rânduri, deoarece doar doi lucrători au depășit pragul specificat în clauza HAVING.

Să presupunem că vrem să clasificăm departamentele pentru a-i vedea pe cei cu lucrători care lucrează în ore mai mari decât un prag de 7 ore. Selectăm departamentul, apoi folosim funcția de agregare SUM cu orele și grupăm rândurile folosind expresia departamentului.

Comanda noastră este următoarea:

SELECTARE departament, SUM(ore) AS total_hours_per_department FROM lucrători GROUP BY departament HAVING sum(ore) > 7;

Din rezultate, putem verifica că am reușit să filtram rândurile pentru a le lăsa doar pe cei cu o sumă a orelor lor mai mare decât pragul nostru.

În mod similar, dacă dorim să filtram data de lucru cu cel mai mare număr de lucrători care lucrează pentru a depăși un prag de 10 ore, selectăm expresia pentru data de lucru. Apoi, folosim funcția SUM cu orele și grupăm rândurile folosind data de lucru.

Comanda este următoarea:

SELECTAȚI data de lucru, SUMA(ore) CA cea mai mare_ore_lucrate FROM lucrători GROUP BY data de lucru HAVING sum(ore) > 10;

După executarea comenzii, rezultatele arată că o singură dată de lucru are suma totală a orelor care depășesc pragul:

Concluzie

Clauza MySQL HAVING este folosită atunci când doriți să executați o interogare de filtru folosind o funcție de agregare. Este combinat cu clauza GROUP BY pentru a executa o interogare mai specifică. Această postare a detaliat totul despre clauza MySQL HAVING în care suma este mai mare decât pragul. Cu exemplele oferite, acum înțelegeți cum să lucrați cu clauza MySQL HAVING.