Les funcions agregades són una part fonamental de SQL i permeten realitzar càlculs sobre un conjunt de valors per retornar un únic valor resumit. Aquestes funcions són molt útils per generar informes i analitzar dades. En aquest tema, explorarem les funcions agregades més comunes en PostgreSQL, com COUNT
, SUM
, AVG
, MIN
i MAX
.
Conceptes clau
- Funcions agregades: Operacions que es realitzen sobre un conjunt de valors per retornar un únic valor.
- Agrupació de dades: Utilització de la clàusula
GROUP BY
per agrupar files que tenen els mateixos valors en columnes específiques. - Filtratge de grups: Utilització de la clàusula
HAVING
per filtrar grups de resultats després d'aplicar les funcions agregades.
Funcions agregades comunes
- COUNT
La funció COUNT
retorna el nombre de files que compleixen una condició específica.
- SUM
La funció SUM
retorna la suma de tots els valors d'una columna numèrica.
- AVG
La funció AVG
retorna la mitjana de tots els valors d'una columna numèrica.
- MIN
La funció MIN
retorna el valor mínim d'una columna.
- MAX
La funció MAX
retorna el valor màxim d'una columna.
Agrupació de dades amb GROUP BY
La clàusula GROUP BY
s'utilitza per agrupar files que tenen els mateixos valors en columnes específiques. Després, es poden aplicar funcions agregades a cada grup.
Exemple pràctic
Suposem que tenim una taula employees
amb les següents columnes: department
, salary
.
Aquest exemple retorna la mitjana de salaris per a cada departament.
Filtratge de grups amb HAVING
La clàusula HAVING
s'utilitza per filtrar grups de resultats després d'aplicar les funcions agregades. És similar a la clàusula WHERE
, però s'aplica als grups de resultats.
Exemple pràctic
Continuant amb l'exemple anterior, suposem que volem veure només els departaments on la mitjana de salaris és superior a 50,000.
Exercicis pràctics
Exercici 1
Descripció: Troba el nombre total d'empleats en la taula employees
.
Consulta:
Exercici 2
Descripció: Troba la suma total dels salaris en la taula employees
.
Consulta:
Exercici 3
Descripció: Troba la mitjana dels salaris per a cada departament en la taula employees
.
Consulta:
Exercici 4
Descripció: Troba el departament amb el salari màxim més alt.
Consulta:
SELECT department, MAX(salary) FROM employees GROUP BY department ORDER BY MAX(salary) DESC LIMIT 1;
Exercici 5
Descripció: Troba els departaments on la mitjana de salaris és superior a 60,000.
Consulta:
Resum
En aquest tema, hem après sobre les funcions agregades més comunes en PostgreSQL, com COUNT
, SUM
, AVG
, MIN
i MAX
. També hem vist com utilitzar la clàusula GROUP BY
per agrupar dades i la clàusula HAVING
per filtrar grups de resultats. Les funcions agregades són essencials per a l'anàlisi de dades i la generació d'informes, i són una eina poderosa per a qualsevol desenvolupador que treballi amb bases de dades.
En el següent tema, explorarem les funcions de finestra, que ens permetran realitzar càlculs més complexos sobre conjunts de dades.
Curs de PostgreSQL
Mòdul 1: Introducció a PostgreSQL
Mòdul 2: Operacions bàsiques de SQL
Mòdul 3: Consultes SQL avançades
Mòdul 4: Disseny de bases de dades i normalització
Mòdul 5: Funcionalitats avançades de PostgreSQL
Mòdul 6: Optimització i millora del rendiment
- Optimització de consultes
- Estratègies d'indexació
- Analitzant el rendiment de les consultes
- Vacuuming i manteniment
Mòdul 7: Seguretat i gestió d'usuaris
- Rols d'usuari i permisos
- Mètodes d'autenticació
- Encriptació de dades
- Còpia de seguretat i restauració
Mòdul 8: Treballant amb JSON i funcionalitats NoSQL
Mòdul 9: Extensions i eines avançades
- PostGIS per a dades geoespacials
- Cerca de text complet
- Wrappers de dades externes
- PL/pgSQL i altres llenguatges procedimentals