Maison > base de données > tutoriel mysql > Comment additionner efficacement les points par ID de budget et type de transaction à l'aide de SQL ?

Comment additionner efficacement les points par ID de budget et type de transaction à l'aide de SQL ?

Linda Hamilton
Libérer: 2025-01-21 12:43:11
original
965 Les gens l'ont consulté

How to Efficiently Sum Points by Budget ID and Transaction Type Using SQL?

Requête SQL efficace pour résumer les données de transaction

L'extraction de données basée sur plusieurs critères est une tâche courante dans la gestion de bases de données. Imaginez une table « transactions » contenant account_id, budget_id, points et type de transaction (allocation ou problème). Le défi consiste à calculer efficacement le total des points pour chaque budget_id, séparés par allocation et types de problèmes.

Une requête SQL concise peut résoudre ce problème avec élégance :

<code class="language-sql">SELECT budget_id,
       SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated,
       SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued
FROM transactions
GROUP BY budget_id;</code>
Copier après la connexion

Cette requête exploite l'instruction CASE dans la fonction SUM(). L'expression CASE WHEN type = 'allocation' THEN points ELSE 0 END vérifie le type de transaction. S'il s'agit d'une « allocation », la valeur points correspondante est additionnée ; sinon, 0 est ajouté. Cette sommation conditionnelle est répétée pour les transactions de type 'émission'.

Le regroupement des résultats par budget_id permet d'obtenir un récapitulatif montrant les points alloués et délivrés pour chaque budget. Le résultat présente clairement une vue consolidée des données de transaction, facilitant l'analyse et le reporting.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal