Maison >base de données >tutoriel mysql >Comment trouver la valeur maximale du signal pour chaque identifiant unique dans un tableau ?
Détermination des valeurs de signal maximales pour les identifiants uniques
Le tableau fourni contient plusieurs enregistrements de signaux pour les mêmes identifiants, ce qui nécessite de récupérer le plus élevé valeur du signal pour chaque ID. L'utilisation de la fonction MAX() seule peut être problématique car elle regroupe tous les enregistrements, affectant les colonnes Station et OwnerID.
Solution de requête avec auto-jointure et exclusion
Pour Isolez les valeurs de signal les plus élevées pour chaque ID, envisagez une approche d'auto-adhésion. Cette technique consiste à joindre une table avec elle-même pour permettre les comparaisons et le filtrage.
La requête suivante exploite cette approche :
select cur.id, cur.signal, cur.station, cur.ownerid from yourtable cur where not exists ( select * from yourtable high where high.id = cur.id and high.signal > cur.signal )
Cette requête fonctionne comme suit :
La sortie de cette requête inclura un une seule ligne pour chaque ID avec la valeur de signal associée la plus élevée. Cette approche résout efficacement le problème de l'agrégation de différentes stations et identifiants de propriétaire pour le même identifiant.
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!