Maison > base de données > tutoriel mysql > Comment mettre à jour les valeurs d'une table à l'aide de fonctions d'agrégation dans SQL ?

Comment mettre à jour les valeurs d'une table à l'aide de fonctions d'agrégation dans SQL ?

Linda Hamilton
Libérer: 2024-12-28 10:15:18
original
874 Les gens l'ont consulté

How to Update Table Values Using Aggregate Functions in SQL?

Mise à jour des valeurs de table avec des fonctions d'agrégation en SQL

En SQL, le but est de modifier la colonne field1 d'une table1 à l'aide d'une fonction d'agrégation , tel que SUM, pour calculer les valeurs d'une table associée2. Cependant, l'implémentation directe peut rencontrer des limitations en raison d'opérations non prises en charge dans la clause SET.

Pour résoudre ce problème, une approche alternative est utilisée. Nous utilisons une sous-requête pour précalculer les valeurs agrégées, puis utilisons ce résultat comme source pour la mise à jour. Dans ce cas, nous calculons la somme de table2.field2 pour chaque valeur unique de field3 à l'aide de GROUP BY.

Voici une requête révisée qui intègre cette technique :

<br> MISE À JOUR t1<br>SET t1.field1 = t2.field2Sum<br>FROM table1 t1<br>INNER JOIN (</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT field3, SUM(field2) AS field2Sum
FROM table2
GROUP BY field3
Copier après la connexion

) AS t2
ON t2.field3 = t1.field3;

Dans cette requête révisée :

  • Une sous-requête entre parenthèses calcule la somme de table2.field2 pour chaque valeur unique de field3 et stocke les résultats dans une table temporaire ou une table dérivée nommée t2.
  • La requête externe joint ensuite table1 avec t2 sur la colonne field3 et met à jour la colonne field1 de table1 en utilisant le valeur field2Sum de t2.

Cette approche nous permet d'utiliser la puissance des fonctions d'agrégation comme SUM tout en mettant à jour une table, fournissant un mécanisme flexible et efficace pour manipuler données en SQL.

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