Maison > base de données > tutoriel mysql > Comment récupérer la valeur « totale » maximale pour chaque « nom » unique dans SQL ?

Comment récupérer la valeur « totale » maximale pour chaque « nom » unique dans SQL ?

Susan Sarandon
Libérer: 2025-01-07 21:20:41
original
471 Les gens l'ont consulté

How to Retrieve the Maximum

Astuce SQL : Extraire la valeur maximale par groupe

Dans les requêtes de base de données, il est souvent nécessaire d'extraire la valeur maximale pour chaque regroupement différent du tableau. Cet article résoudra le problème de la sélection de l'enregistrement avec la valeur « Total » la plus élevée pour chaque « Nom » unique dans une table.

Exemples de tableaux et de données :

Supposons que nous ayons l'exemple de tableau suivant :

Name Top Total
cat 1 10
dog 2 7
cat 3 20
horse 4 4
cat 5 10
dog 6 9

Cible de la requête :

Notre objectif est d'extraire les résultats suivants :

Name Top Total
cat 3 20
horse 4 4
dog 6 9

Solution :

Cela peut être réalisé en utilisant la requête SQL suivante :

<code class="language-sql">SELECT
  Name, Top, Total
FROM
  sometable
WHERE
  Total = (SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name);</code>
Copier après la connexion

Explication :

Cette requête utilise une sous-requête dans la clause WHERE. La sous-requête recherche la valeur maximale de « Total » pour chaque groupe en fonction du « Nom ». La requête externe filtre ensuite la table et sélectionne uniquement les enregistrements dont le « Total » correspond à cette valeur maximale.

Alternative :

Alternative à l'utilisation de jointures internes :

<code class="language-sql">SELECT
  Name, Top, Total
FROM
  sometable
INNER JOIN (
    SELECT MAX(Total) AS Total, Name
    FROM sometable
    GROUP BY Name
  ) AS max ON max.Name = sometable.Name AND max.Total = sometable.Total;</code>
Copier après la connexion

Conclusion :

Les deux méthodes sont efficaces pour extraire les enregistrements requis de la table en identifiant la valeur maximale de « Total » pour chaque « Nom » distinct. Ces requêtes peuvent être adaptées à divers systèmes de gestion de bases de données et fournissent une méthode générale pour extraire des valeurs maximales à partir de données groupées.

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