public static async Task <string> GetDeviceHistogramTabQuery(DevicePersistenceData data, QueryDuration queryDuration, InfluxDBLoginInformation loginInformation) { string duration = GetInfluxDBDuration(queryDuration); // Find last element before duration string query = Invariant($"SELECT last(*) from \"{data.Measurement}\" WHERE \"{PluginConfig.DeviceRefIdTag}\" = '{data.DeviceRefId}' and time < now() - {duration} order by time asc"); var time = await InfluxDBHelper.GetTimeValueForQuery(query, loginInformation).ConfigureAwait(false); string timeRestriction = time.HasValue ? Invariant($"time >= {new DateTimeOffset(time.Value).ToUnixTimeSeconds()}s") : Invariant($"time >= now() - {duration}"); return(Invariant($"SELECT {GetFields(data)[0]} FROM \"{data.Measurement}\" WHERE \"{PluginConfig.DeviceRefIdTag}\" = '{data.DeviceRefId}' AND {timeRestriction} ORDER BY time ASC")); }