2017-06-16 5 views
0

J'ai une base de données avec le prix et l'horodatage dans la mesure des nanosecondes dans InfluxDB. Quand je fais une selection regroupés par temps comme celui-ci:Obtenir les derniers horodatages dans un groupe par requête de temps dans Influxdb

select first(price),last(price) from priceseries where time>=1496815212834974866 and time<=1496865599580302882 group by time(1s) 

I a reçu une colonne de temps dans lequel les horodatages est aligné sur le deuxième début du groupe. Par exemple, l'horodatage sera 8:00:00 et les prochains horodatages sera 08:00:01

Comment

  1. appliquer la fonction d'agrégation sur le disque lui-même horodatages comme la dernière (le temps) ou de la première (temps) afin d'avoir le vrai premier et dernier horodatage du groupe (je peux avoir beaucoup de prix dans mon groupe)?
  2. et comment la colonne time dans la réponse pourrait être la seconde de fermeture et non la première seconde, c'est-à-dire si le groupe passe de 08:00:00 à 08:00:01, je veux voir 08:00:01 dans ma colonne time au lieu de 08:00:00 que je vois maintenant?

Répondre

1
  1. pas lors de l'utilisation d'une fonction d'agrégation, ce qui implique l'utilisation de group by.

vous donnera le premier et dernier prix dans cette fenêtre de temps.

Lorsque la requête comporte un groupe, l'agrégation s'applique uniquement aux valeurs comprises dans les intervalles. Les valeurs elles-mêmes sont les vraies valeurs qui tombent dans l'intervalle 08:00:00 - 08:00:01, c'est juste que l'horodateur indiqué est pour l'intervalle lui-même, pas les valeurs réelles.

Ce qui signifie que la requête entre 08:00:00 et pour 08:00:01 sans un groupe par la requête et avec un groupe par time(1s) pour cette période donnera même résultat. Seule différence: query sans groupe aura l'horodatage réel de la valeur et le groupe par requête aura l'horodatage de l'intervalle à la place.

  1. L'horodatage lors de l'utilisation de group by indique l'heure de début de l'intervalle. De cela, vous pouvez calculer l'heure de fin est l'heure de début + intervalle. Quel horodatage à afficher n'est pas configurable dans le langage de requête.