Maison > base de données > tutoriel mysql > Comment sélectionner efficacement la valeur maximale pour chaque groupe dans une base de données SQL ?

Comment sélectionner efficacement la valeur maximale pour chaque groupe dans une base de données SQL ?

DDD
Libérer: 2025-01-16 13:10:01
original
556 Les gens l'ont consulté

How to Efficiently Select the Maximum Value for Each Group in a SQL Database?

Extraction des valeurs maximales pour chaque groupe en SQL

Une tâche SQL courante consiste à récupérer la valeur maximale de chaque groupe unique au sein d'une table. Illustrons cela avec un exemple de tableau :

Name Value AnotherColumn
Pump 1 8000.0 Something1
Pump 1 10000.0 Something2
Pump 1 10000.0 Something3
Pump 2 3043 Something4
Pump 2 4594 Something5
Pump 2 6165 Something6

Notre objectif est de trouver le Value le plus élevé pour chaque Name (pompe), donnant ce résultat :

Name Value
Pump 1 10000.0
Pump 2 6165

Une approche naïve utilisant des sous-requêtes pour trouver la valeur maximale de chaque nom conduit souvent à des entrées en double lorsque plusieurs lignes partagent la même valeur maximale :

<code class="language-sql">select a.name, value 
from out_pumptable as a,
(select name, max(value) as value from out_pumptable group by name) g
where a.name = g.name and g.value = a.value</code>
Copier après la connexion

Cependant, une solution plus efficace et concise utilise la clause GROUP BY :

<code class="language-sql">select name, max(value)
from out_pumptable
group by name;</code>
Copier après la connexion

Cette requête regroupe les lignes en fonction de la colonne Name, puis sélectionne le maximum Value dans chaque groupe, évitant ainsi efficacement les résultats en double et fournissant le résultat souhaité.

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