Middle
À quoi servent les fonctions de fenêtre en SQL?
sobes.tech IA
Réponse de l'IA
Les fonctions de fenêtrage en SQL effectuent des agrégations de données sur un ensemble de lignes liées à la ligne courante, sans regrouper l'ensemble des résultats. Cela permet d'effectuer des calculs tels que des sommes cumulatives, des moyennes mobiles ou des rangs, tout en conservant toutes les lignes de la requête d'origine.
Les principaux objectifs de l'utilisation des fonctions de fenêtrage :
- Classement : Attribution d'un rang à chaque ligne dans une fenêtre déterminée.
-- Obtenir le rang des employés par salaire dans chaque département SELECT employee_name, salary, department, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank FROM employees; - Calcul de statistiques par groupe de lignes sans regroupement : Agrégation de données dans une "fenêtre" de lignes, tout en conservant la granularité au niveau de la ligne.
-- Calculer le salaire moyen par département pour chaque ligne SELECT employee_name, salary, department, AVG(salary) OVER (PARTITION BY department) as avg_department_salary FROM employees; - Comparaison de la ligne courante avec d'autres lignes dans la fenêtre : Accès aux données des lignes précédentes ou suivantes dans la fenêtre.
-- Obtenir le salaire du salarié précédent dans le département en ordre décroissant de salaire SELECT employee_name, salary, department, LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary FROM employees; - Calculs avec somme cumulative : Calcul de sommes, moyennes et autres agrégats en cumulant à partir du début.
-- Calculer la somme cumulative des ventes par date SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales FROM sales;
Contrairement aux fonctions d'agrégation classiques (GROUP BY), les fonctions de fenêtrage ne fusionnent pas les lignes, ce qui en fait un outil puissant pour les requêtes analytiques et l'analyse détaillée des données.