Com utilitzar la clàusula HAVING de MySQL on la suma és més gran que el llindar

Com Utilitzar La Clausula Having De Mysql On La Suma Es Mes Gran Que El Llindar



Quan treballeu amb la base de dades MySQL, sovint tindreu casos en què voleu filtrar els valors. Tot i que podeu utilitzar la clàusula WHERE, no sempre funciona en tots els casos. La clàusula HAVING s'utilitza quan voleu executar una consulta de filtre mitjançant una funció d'agregació i aplicar les agrupacions.

La clàusula HAVING es basa en la clàusula GROUP BY del seu filtre i executa la consulta en funció de la condició proporcionada. Restringeix el filtre en funció de la condició i només retorna els grups seleccionats si compleixen la condició. Tenim exemples d'ús de la clàusula HAVING de MySQL on la suma supera el llindar. D'aquesta manera, dominaràs com utilitzar-lo al final de la publicació d'avui.







Com utilitzar la clàusula HAVING de MySQL on la suma és més gran que el llindar

Apliqueu la clàusula HAVING de MySQL amb la clàusula GROUP BY. La seva sintaxi és la següent:



SELECT expression1, .. expression_n, aggregate_func (expressió) FROM table_name GROUP BY expression HAVING ;

Podeu utilitzar les diferents funcions agregades, com ara SUM(), COUNT(), MIN(), MAX() i AVG(). Tingueu en compte que qualsevol expressió que no s'utilitzi amb la funció d'agregació s'ha d'esmentar amb la clàusula GROUP BY.



Pel que fa a la condició, s'aplica als resultats agregats on especifiqueu el llindar que voleu comprovar amb la condició. Per exemple, podeu aplicar la funció SUM() i verificar si l'expressió compleix un llindar de 10. Entendrem més sobre això als exemples proporcionats.





Per entendre com funciona la clàusula HAVING, creem una base de dades de mostra amb la qual treballarem. Anomenem la nostra base de dades com a 'registre'.



També creem una taula anomenada 'treballadors' per contenir les nostres diferents columnes i tipus de dades. Aquí treballem amb les dades dels treballadors com ara el nom, l'horari, la data de treball, etc.

En comprovar la descripció de la nostra taula, podem confirmar que totes les columnes s'han creat correctament.

Inseriu els valors a la nostra taula. Tenim diferents treballadors que treballen en diferents hores i dies. Utilitzant aquestes dades, podem aplicar la clàusula HAVING on la suma supera el llindar.

Per al nostre primer exemple, considerem un cas en què volem trobar els treballadors que han treballat més hores. Per a la clàusula HAVING, inclou la funció d'agregació suma per hores. A la clàusula GROUP BY, agrupem les files utilitzant la fila del nom per ajudar a classificar els treballadors amb el total d'hores que superen el llindar.

Si el nostre llindar per al total d'hores és de 7, executem la nostra comanda de la següent manera:

SELECT name, SUM(hores) AS total_hours_per_person FROM treballadors GROUP BY name HAVING sum(hores) > 7;

En executar l'ordre, obtenim una sortida que conté dues files, ja que només dos treballadors van superar el llindar que s'especifica a la clàusula HAVING.

Suposem que volem classificar els departaments per veure aquells amb treballadors que treballen en hores superiors a un llindar de 7 hores. Seleccionem el departament, després fem servir la funció d'agregació SUMA amb les hores i agrupem les files mitjançant l'expressió departament.

El nostre comandament és el següent:

SELECT departament, SUM(hores) AS total_hours_per_department FROM treballadors GRUP PER departament HAVING sum(hores) > 7;

A partir dels resultats, podem comprovar que hem aconseguit filtrar les files per deixar només aquelles amb una suma de les seves hores superior al nostre llindar.

De la mateixa manera, si volem filtrar la data de treball amb el nombre més alt de treballadors treballadors per superar un llindar de 10 hores, seleccionem l'expressió de data de treball. A continuació, fem servir la funció SUMA amb les hores i agrupem les files mitjançant la data de treball.

La comanda és la següent:

SELECCIONA la data de treball, SUMA(hores) COM a més_hores_treballades FROM treballadors AGRUPAR PER data de treball HAVING sum(hores) > 10;

Després d'executar l'ordre, els resultats mostren que només una data de treball té la seva suma d'hores totals que superen el llindar:

Conclusió

La clàusula HAVING de MySQL s'utilitza quan voleu executar una consulta de filtre mitjançant una funció d'agregació. Es combina amb la clàusula GROUP BY per executar una consulta més específica. Aquesta publicació va detallar tot sobre la clàusula MySQL HAVING on la suma és més gran que el llindar. Amb els exemples proporcionats, ara enteneu com treballar amb la clàusula HAVING de MySQL.