Bonjour à tous,
Débutant en SQL, j'ai un petit problème pour effectuer une requête.
J'ai 2 tables : une contenant des observations (heure => V1 et hauteur => V2), l'autre des prédictions (heure => V1 et hauteur => V2).
Il faut que : pour chaque tuple dans la table prédiction je récupère l'observation dont V2 est maximale, parmi toutes les observations dans une plage de plus ou moins 1h par rapport à l'heure de prédiction (V1).
Voici un exemple :
Il faudrait donc obtenir ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 > obs V1 V2 1 1 5 2 2 9 3 3 3 4 4 20 5 5 2 > pred V1 V2 1 1.2 6 2 3.9 17
Je pensais à une requête de ce genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 > res V1 V2 1 2 9 2 4 20
Mais elle n'est pas bonne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select distinct obs.V1, obs.V2 from obs,pred where obs.V2>=(select max(obs.V2) from obs,pred where abs(obs.V1 - pred.V1) < 1 group by pred.V1)
Si vous avez des suggestions, je suis preneur!
Je vous remercie.
Partager