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

  1. Funcions agregades: Operacions que es realitzen sobre un conjunt de valors per retornar un únic valor.
  2. Agrupació de dades: Utilització de la clàusula GROUP BY per agrupar files que tenen els mateixos valors en columnes específiques.
  3. Filtratge de grups: Utilització de la clàusula HAVING per filtrar grups de resultats després d'aplicar les funcions agregades.

Funcions agregades comunes

  1. COUNT

La funció COUNT retorna el nombre de files que compleixen una condició específica.

SELECT COUNT(*) FROM employees;

  1. SUM

La funció SUM retorna la suma de tots els valors d'una columna numèrica.

SELECT SUM(salary) FROM employees;

  1. AVG

La funció AVG retorna la mitjana de tots els valors d'una columna numèrica.

SELECT AVG(salary) FROM employees;

  1. MIN

La funció MIN retorna el valor mínim d'una columna.

SELECT MIN(salary) FROM employees;

  1. MAX

La funció MAX retorna el valor màxim d'una columna.

SELECT MAX(salary) FROM employees;

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.

SELECT department, AVG(salary) 
FROM employees 
GROUP BY department;

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.

SELECT department, AVG(salary) 
FROM employees 
GROUP BY department 
HAVING AVG(salary) > 50000;

Exercicis pràctics

Exercici 1

Descripció: Troba el nombre total d'empleats en la taula employees.

Consulta:

SELECT COUNT(*) FROM employees;

Exercici 2

Descripció: Troba la suma total dels salaris en la taula employees.

Consulta:

SELECT SUM(salary) FROM employees;

Exercici 3

Descripció: Troba la mitjana dels salaris per a cada departament en la taula employees.

Consulta:

SELECT department, AVG(salary) 
FROM employees 
GROUP BY department;

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:

SELECT department, AVG(salary) 
FROM employees 
GROUP BY department 
HAVING AVG(salary) > 60000;

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

Mòdul 7: Seguretat i gestió d'usuaris

Mòdul 8: Treballant amb JSON i funcionalitats NoSQL

Mòdul 9: Extensions i eines avançades

Mòdul 10: Estudis de cas i aplicacions del món real

© Copyright 2024. Tots els drets reservats