


Comment calculer la somme cumulée dans MySQL sans fonctions analytiques ?
Jan 03, 2025 pm 03:51 PMCalcul de la somme cumulée pour un ensemble de lignes dans MySQL
Énoncé du problème :
Déterminer la somme cumulée pour chaque ID pour toutes les heures de la journée à partir d'un ensemble de résultats de requête contenant des colonnes pour l'ID, le jour, l'heure et montant.
Réponse :
SELECT IF(@prev_id = c.id AND @prev_day = c.day ,@cumtotal := @cumtotal + c.amount ,@cumtotal := c.amount) AS cumulative_total , @prev_id := c.id AS `id` , @prev_day := c.day AS `day` , c.hr , c.amount AS `amount' FROM ( SELECT @prev_id := NULL , @prev_day := NULL , @subtotal := 0 ) i JOIN ( select id, day, hr, amount from ( //multiple joins on multiple tables)a left join (//unions on multiple tables)b on a.id=b.id ORDER BY 1,2,3 ) c
Remarques supplémentaires :
- Les versions MySQL antérieures à 8.0 manquent d'analyse fonctions pour le calcul de la somme cumulée.
- La solution fournie utilise les variables utilisateur MySQL et le traitement des ruptures de contrôle pour émuler la fonctionnalité analytique.
- La requête a été modifiée pour classer les lignes par ID, jour et heure pour un calcul correct de la somme cumulée.
- La colonne du total cumulé calculé est renvoyée en tant que première colonne du ensemble de résultats.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
