J'ai une table Table1, contenant les champs TimeStamp et l'humidité, qui ont les valeurs:Trouvez le temps d'une valeur MAX dans SQL Server
TimeStamp
'2010-09-29 11: 05: 29,6'
'2010-09-29 11: 05: 29.7'
'2010-09-29 11: 05: 29,8'
'2010-09-29 11: 05: 29,9'
« 2010-09-29 11: 05: 30.0 '
Humidité
15.291
17,379
16,857
16,335
15,813
Je voudrais exécuter une requête qui retourne à l'instant que l'humidité est à son maximum la valeur de TimeStamp. Dans cet exemple, il retournera '2010-09-29 11: 05: 29.7' parce que c'est là que l'humidité est sa valeur la plus élevée, 17,379. Je veux aussi limiter la plage de temps, donc ce serait quelque chose comme
SELECT _TimeStamp from Table1
WHERE Humidity = MAX(Humidity) AND
_TimeStamp >= '2010-09-29 11:05:29.6' AND
_TimeStamp <= '2010-09-29 11:05:30.0'
mais cela donne une erreur que les agrégats ne sont pas autorisés dans une clause where. Comment cette requête doit-elle être écrite correctement?
fonctionne parfaitement, merci! – KAE
S'il vous plaît jeter un oeil à ma réponse ci-dessous. Merci. – fancyPants
Vous pouvez envisager un tri supplémentaire. Si l'humidité a une valeur maximale (je suppose que 100), alors vous voudrez spécifier ce que l'ordre suivant devrait être. Par exemple, _timestamp descending peut être un bon choix afin que vous puissiez voir le plus récent max. –