Middle — Senior
Comment calculer la médiane en SQL sans fonction intégrée ? Comment compter le nombre de lignes dans une table ? Connaissez-vous les fonctions de fenêtrage ?
sobes.tech IA
Réponse de l'IA
La médiane en SQL sans fonction intégrée peut être calculée en utilisant des fonctions de fenêtre ou des sous-requêtes. Par exemple, pour une table avec une colonne numérique value :
SELECT AVG(value) AS median FROM (
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn, COUNT(*) OVER () AS cnt
FROM your_table
) sub
WHERE rn IN ((cnt + 1) / 2, (cnt + 2) / 2);
Ici :
ROW_NUMBER()numérote les lignes par ordre croissant de valeur.COUNT(*) OVER ()compte le nombre total de lignes.- On prend la moyenne des deux éléments centraux (pour un nombre pair) ou un seul (pour un nombre impair).
Compter le nombre de lignes dans la table est très simple :
SELECT COUNT(*) FROM your_table;
Fonctions de fenêtre sont des fonctions qui effectuent des calculs sur un ensemble de lignes liées à la ligne courante, sans réduire le résultat à une seule ligne (contrairement aux fonctions agrégées). Elles sont utiles pour le classement, le calcul de sommes mobiles, la médiane, etc.
Exemple de fonction de fenêtre :
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;
Elle numérotera les lignes par ordre croissant de value.