
Valeur maximale de la requête de groupe SQL
Cette question est conçue pour extraire des données spécifiques d'une table, dans le but de trouver l'enregistrement avec la valeur « Total » la plus élevée pour chaque champ « Nom » unique. Ceci est différent du problème de trouver le dernier enregistrement de chaque groupe.
Voici deux méthodes de requête SQL pour atteindre cet objectif :
Méthode 1 : Sous-requête
<code class="language-sql">SELECT Name, Top, Total
FROM sometable
WHERE Total = (
SELECT MAX(Total)
FROM sometable i
WHERE i.Name = sometable.Name
);</code>Cette requête utilise une sous-requête pour trouver la valeur Name maximale dans chaque Total groupe, puis sélectionne uniquement les enregistrements qui correspondent à cette valeur maximale.
Méthode 2 : Auto-connexion
<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>Cette requête utilise INNER JOIN pour joindre sometable à une sous-requête qui calcule la valeur Name maximale pour chaque Total groupe. La condition INNER JOIN garantit que seuls les enregistrements dont la valeur Total correspond à la valeur maximale de chaque groupe sont sélectionnés.
Les deux méthodes donnent le même résultat :
| Name | Top | Total |
|---|---|---|
| cat | 3 | 20 |
| horse | 4 | 4 |
| dog | 6 | 9 |
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!
Quelles sont les méthodes pour récupérer les données du serveur ?
Comment partager une imprimante dans Win10
Quels serveurs y a-t-il sur le Web ?
utilisation de la fonction date
Oracle ajoute une méthode de déclenchement
Comment utiliser les bugs de recherche
Patch d'adhésion Thunder
Comment nettoyer le lecteur C de votre ordinateur lorsqu'il est plein