Alors que les requêtes SQL de base peuvent récupérer, insérer, mettre à jour et supprimer des enregistrements, les requêtes agrégées amènent les interactions avec la base de données à un nouveau niveau en fournissant les sommes, les moyennes ou les valeurs min/max à partir d'un vaste ensemble de résultats. Dans cet article, nous explorerons les principes fondamentaux des requêtes SQL agrégées, en examinant comment elles peuvent être utilisées pour analyser et résumer efficacement les données.
Comprendre les fonctions d'agrégation
Les fonctions d'agrégation dans SQL opèrent sur des ensembles de lignes et renvoient une valeur unique en sortie. Ces fonctions sont inestimables lorsqu'il s'agit d'effectuer des calculs sur des données contenues dans une base de données. Les fonctions d'agrégation couramment utilisées incluent :
1. COUNT()
La fonction COUNT()
compte le nombre de lignes qui remplissent une condition spécifiée. Elle peut être utilisée pour compter toutes les lignes ou celles répondant à certains critères.
SELECT COUNT(*) AS total_records FROM employees;
2. SUM()
La fonction SUM()
calcule la somme totale d'une colonne numérique.
SELECT SUM(salary) AS total_salary FROM employees;
3. AVG()
La fonction AVG()
détermine la valeur moyenne d'une colonne numérique.
SELECT AVG(age) AS average_age FROM students;
4. MAX() and MIN()
Les fonctions MAX()
et MIN()
identifient respectivement les valeurs maximales et minimales dans une colonne.
SELECT MAX(price) AS max_price, MIN(price) AS min_price FROM products;
Regrouper des données avec GROUP BY
L'un des aspects puissants des requêtes agrégées dans SQL est la possibilité de regrouper des données en fonction de certains critères à l'aide de la clause GROUP BY
. Cela facilite l’analyse de sous-ensembles de données, permettant des informations plus granulaires.
Grouper avec COUNT()
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;
Grouper avec AVG()
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department;
Filtre de groupe avec HAVING
La clause HAVING
est utilisée conjointement avec GROUP BY
pour filtrer les résultats des requêtes agrégées en fonction des conditions appliquées aux données groupées.
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
Combinaison de fonctions d'agrégation
SQL permet de combiner plusieurs fonctions d'agrégation dans une seule requête, offrant ainsi un aperçu complet des données.
SELECT department, COUNT(*) AS employee_count, AVG(salary) AS average_salary
FROM employees
GROUP BY department;
Utilisation des fonctions d'agrégation dans Navicat
Si vous n'êtes pas sûr du nom exact d'une fonction ou des paramètres d'entrée, vous pouvez commencer à le saisir dans l'éditeur SQL. Navicat présentera une liste d'options parmi lesquelles vous pourrez sélectionner pour compléter automatiquement un terme. Les fonctions d'agrégation sont identifiées par le symbole grec Sigma (Σ):
Conclusion
Les requêtes SQL agrégées sont des outils indispensables pour l'analyse des données et le reporting dans les bases de données relationnelles. Que vous résumiez des informations, calculiez des moyennes ou regroupiez des données en fonction de certains critères, comprendre comment exploiter les fonctions et clauses d'agrégation telles que GROUP BY
et HAVING
est essentiel pour une interrogation efficace des bases de données.