Maison > base de données > tutoriel mysql > Comment soustraire la valeur de la ligne précédente dans une requête MySQL groupée ?

Comment soustraire la valeur de la ligne précédente dans une requête MySQL groupée ?

DDD
Libérer: 2025-01-10 12:37:42
original
848 Les gens l'ont consulté

How to Subtract the Previous Row's Value in a Grouped MySQL Query?

MySQL : Soustraire la valeur de la ligne précédente dans la requête groupée

Soustraire une valeur de la ligne précédente est une tâche courante dans l'analyse des données, mais peut présenter des défis lorsque vous travaillez avec des données groupées. MySQL fournit une méthode générale pour résoudre cette situation.

Pour calculer la différence de consommation d'énergie entre des lignes consécutives pour chaque SN, nous utilisons les variables système de MySQL (@lastSN et @lastValue) et une requête qui effectue un seul passage sur les données :

<code class="language-sql">SELECT
  EL.SN,
  EL.Date,
  EL.Value,
  IF(@lastSN = EL.SN, EL.Value - @lastValue, 0.00) AS Consumption,
  @lastSN := EL.SN,
  @lastValue := EL.Value
FROM
  EnergyLog EL,
  (SELECT @lastSN := 0, @lastValue := 0) SQLVars
ORDER BY
  EL.SN, EL.Date;</code>
Copier après la connexion

Les requêtes fonctionnent comme suit :

  1. Déclarez les variables MySQL @lastSN et @lastValue pour suivre le SN et la valeur précédents.
  2. Pour chaque ligne de la table EnergyLog, comparez le SN actuel à @lastSN.
  3. Si SN correspond, utilisez IF() pour calculer la différence d'énergie. Sinon, réglez Consommation sur 0.
  4. Après comparaison, mettez à jour @lastSN et @lastValue avec la valeur de la ligne actuelle.
  5. Trier les résultats par SN et Date pour garantir des calculs corrects de consommation d'énergie.

En utilisant des variables MySQL, nous avons implémenté une solution simple et efficace pour calculer la consommation d'énergie en fonction de la valeur précédente dans une requête groupée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal