Maison > base de données > tutoriel mysql > Comment trouver la valeur maximale du signal pour chaque ID dans une table SQL ?

Comment trouver la valeur maximale du signal pour chaque ID dans une table SQL ?

Linda Hamilton
Libérer: 2025-01-06 12:39:41
original
496 Les gens l'ont consulté

How to Find the Maximum Signal Value for Each ID in a SQL Table?

Requête de signal maximum pour chaque ID

Question :

Étant donné une table avec plusieurs signaux valeurs associées à chaque ID, comment écrire une requête pour récupérer la valeur maximale du signal pour chaque ID unique ? Prenons l'exemple de tableau suivant :

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
Copier après la connexion

Réponse :

Pour récupérer la valeur maximale du signal pour chaque ID sans affecter les autres colonnes telles que Station et OwnerID, un auto- join peut être utilisé :

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
)
Copier après la connexion

Cette requête joint la table à elle-même pour créer un produit cartésien. Pour chaque paire de lignes, il vérifie si la valeur du signal de la deuxième ligne (high) est supérieure à celle de la première ligne (cur). Si une valeur de signal plus élevée est trouvée pour le même ID, la ligne actuelle est exclue.

Le résultat est un tableau contenant uniquement les lignes avec la valeur de signal maximale pour chaque ID. Pour l'exemple de tableau, le résultat serait :

ID    Signal    Station    OwnerID
111   -120      Home        1
222   -95       Work        1
Copier après la connexion

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!

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