Récupération des valeurs de signal maximales pour les identifiants uniques
Afin de déterminer la valeur de signal maximale pour chaque identifiant unique dans un ensemble de données donné, vous pouvez employer l'approche suivante, qui implique une opération d'auto-jointure :
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 en joignant la table avec elle-même (représentée par les alias cur et high) et filtrer les lignes pour lesquelles une valeur de signal plus élevée existe. Le résultat est une liste de lignes contenant l'ID, la valeur du signal, la station et l'ID du propriétaire pour chaque ID distinct avec la valeur de signal la plus élevée.
Dans le contexte de l'exemple de tableau fourni :
ID Signal Station OwnerID 111 -120 Home 1 111 -130 Car 1 111 -135 Work 2 222 -98 Home 2 222 -95 Work 1 222 -103 Work 2
L'exécution de la requête donnerait les résultats suivants :
ID Signal Station OwnerID 111 -120 Home 1 222 -95 Work 1
Ce tableau contient la valeur maximale du signal pour chaque ID unique, résolvant efficacement le problème d'origine sans données inutiles agrégation ou nécessité de jointures de tables supplémentaires.
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!