
Calculer efficacement les différences de valeurs de ligne dans les tables SQL
Ce guide présente deux méthodes pour calculer la différence entre les valeurs de lignes consécutives dans une table SQL, en se concentrant sur une structure de table non séquentielle. La première méthode convient à toutes les versions de SQL, tandis que la seconde utilise des fonctions de fenêtre pour améliorer les performances dans SQL Server 2012 et versions ultérieures.
Méthode 1 : auto-jointure (toutes les versions SQL)
Cette approche utilise un LEFT JOIN pour comparer chaque ligne avec la ligne suivante en fonction d'un identifiant de ligne (rowInt dans cet exemple).
<code class="language-sql">SELECT
current.rowInt,
current.Value,
ISNULL(next.Value, 0) - current.Value AS ValueDifference
FROM
sourceTable AS current
LEFT JOIN
sourceTable AS next
ON next.rowInt = (SELECT MIN(rowInt) FROM sourceTable WHERE rowInt > current.rowInt)</code>La fonction ISNULL gère les cas où une ligne n'a pas de successeur (la dernière ligne), en attribuant une différence de 0 pour éviter les valeurs NULL.
Méthode 2 : fonction de fenêtre LEAD() (SQL Server 2012 et versions ultérieures)
Pour une efficacité accrue dans les versions plus récentes de SQL Server, la fonction de fenêtre LEAD() fournit une solution plus simple :
<code class="language-sql">SELECT RowInt, Value, LEAD(Value, 1, 0) OVER (ORDER BY RowInt) - Value AS ValueDifference FROM sourceTable</code>
LEAD(Value, 1, 0) récupère la valeur de la ligne suivante (décalage 1), par défaut à 0 si aucune ligne suivante n'existe. Cela calcule directement la différence, éliminant ainsi le besoin d’une auto-jointure. Cette méthode est généralement plus rapide et plus lisible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
police de définition du bloc-notes
Code écran bleu 0x000009c
À quel point le Dimensity 6020 est-il équivalent à Snapdragon ?
pycharm ouvre une nouvelle méthode de fichier
Comment télécharger des vidéos de Douyin
Comment lire les fichiers py en python
Comment ouvrir le fichier apk
Utilisation de l'instruction delete