Trouver la valeur maximale des données groupées
Étant donné un tableau comportant plusieurs colonnes, une tâche courante consiste à identifier la valeur maximale au sein d'un groupe spécifique. Dans l'exemple fourni, nous avons des données liées aux pompes (Pump1 et Pump2) avec des valeurs différentes et une colonne supplémentaire (AnotherColumn) . Le but est de récupérer la valeur maximale pour chaque pompe.
Une approche pourrait impliquer d'utiliser une sous-requête pour sélectionner la valeur maximale regroupée par la colonne de nom :
<code class="language-sql">select name, max(value) as value from out_pumptable group by name</code>
Cependant, comme mentionné dans la question, cette approche peut être possible s'il existe plusieurs maxima pour un certain groupe (dans ce cas, la Pompe 1 a deux entrées avec le même maximum) Les entrées en double seront est revenu.
Pour résoudre ce problème, vous pouvez utiliser le mot-clé DISTINCT pour vous assurer que seules des valeurs maximales distinctes sont renvoyées :
<code class="language-sql">select name, max(value) as value from out_pumptable group by name having max(value) not in (select value from out_pumptable group by value having count(*) > 1)</code>
Cette modification vérifie si la valeur maximale est unique dans la table (en utilisant une sous-requête). Si la valeur n'est pas unique, elle est exclue des résultats. Cette méthode représente plus précisément la valeur maximale pour chaque pompe.
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!