60 votes

Requête SQL Update avec clause groupe par

<pre><code></code><p>Écrivez une requête pour mettre à jour le nom de la personne d’âge maximum dans chaque type dans 'HIGH'.</p><p>Et aussi s’il vous plaît dites-moi, pourquoi la requête suivante ne fonctionne pas</p><pre><code></code></pre></pre>

105voto

Svetlana Points 336

J’ai changé le script de Derek et cela fonctionne pour moi maintenant:

9voto

Derek Kromm Points 10322

Vous ne pouvez pas utiliser le groupe directement dans une instruction de mise à jour. Il faudra que cela ressemble plus à ceci:

4voto

Mike Robinson Points 3698

Comme j’ai cherché cette réponse et que je l’ai trouvée un peu déroutante à lire, j’ai expérimenté pour confirmer que la requête suivante fonctionne, confirmant le message original très voté de Svetlana:

Maintenant vous savez... et moi aussi.

2voto

Vincent Malgrat Points 42899

Vous pouvez utiliser une semi-jointure :

Votre requête ne fonctionnera pas car vous ne pouvez pas comparer un agrégat et une valeur de colonne directement dans un groupe par requête. De plus, vous ne pouvez pas mettre à jour un agrégat.

0voto

Pratik Points 15125

essaye ça

 update table1 set name='HIGH' having age in(select max(age) from table1 group by type);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X