Quelque chose comme ça? Joignez votre tableau à lui-même et excluez les lignes pour lesquelles un signal plus élevé a été trouvé.
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
)
Cela répertorierait une ligne pour chaque signal le plus élevé, il pourrait donc y avoir plusieurs lignes par identifiant.