Junior — Middle
Avez-vous de l'expérience dans l'utilisation des fonctions de fenêtre lors de la rédaction de requêtes SQL?
sobes.tech IA
Réponse de l'IA
Oui, lors de l'utilisation de requêtes SQL, j'ai utilisé des fonctions de fenêtre (window functions). Elles permettent d'effectuer des calculs sur un ensemble de lignes liées à la ligne courante, sans regroupement des résultats, ce qui est pratique pour l'analyse et les requêtes complexes.
Principales fonctions de fenêtre :
ROW_NUMBER()— numérotation des lignes dans la fenêtreRANK(),DENSE_RANK()— classement en tenant compte des égalitésSUM(),AVG(),COUNT()— fonctions agrégées sur la fenêtre
Exemple : obtenir une liste d'employés avec leur salaire et leur rang par département par ordre décroissant de salaire :
SELECT
employee_id,
department_id,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;
Ici, PARTITION BY divise les données par départements, et ORDER BY définit l'ordre à l'intérieur de chaque département. Les fonctions de fenêtre permettent de faire des requêtes analytiques complexes sans perdre de détails.