Ich habe einige Daten bekam strukturiert als solcheGraf von Unter wählen in influxdb nichts Rückkehr
select * from rules where time > now() - 1m limit 5
name: rules
time ackrate consumers deliverrate hostname publishrate ready redeliverrate shard unacked version
---- ------- --------- ----------- -------- ----------- ----- ------------- ----- ------- -------
1513012628943000000 864 350 861.6 se-rabbit14 975.8 0 0 14 66 5
1513012628943000000 864.8 350 863 se-rabbit9 920.8 0 0 09 64 5
1513012628943000000 859.8 350 860.2 se-rabbit8 964.2 0 0 08 58 5
1513012628943000000 864.8 350 863.6 se-rabbit16 965.4 0 0 16 64 5
1513012631388000000 859.8 350 860.2 se-rabbit8 964.2 0 0 08 58 5
Ich möchte den Prozentsatz der ‚Up-Zeit‘ definiert als die Menge berechnen der Zeit, wenn die Warteschlange keine bereit Nachrichten hat.
Ich kann die maximale Anzahl der bereit in jeder Minute erhalten
select max(ready) from rules where time > now() - 1h group by time(1m) limit 5
name: rules
time max
---- ---
1513009560000000000 0
1513009620000000000 0
1513009680000000000 0
1513009740000000000 0
1513009800000000000 0
eine Unterabfrage verwenden, ich nur die Minuten auswählen können, die Werte bereit haben.
select ready from (select max(ready) as ready from rules where time > now() - 1h group by time(1m)) where ready > 0
name: rules
time ready
---- -----
1513010520000000000 49
1513013280000000000 57
Ich wollte eine Zählung dieser Werte bekommen und dann einen Prozentsatz ein bisschen Mathematik berechnen zu tun. In diesem Fall mit 2 Ergebnissen in der letzten Stunde,
((60 Minuten * 1 Stunde) - 2)/(60 Minuten * 1 Stunde)) == 96%
Wenn ich versuche, diese zu zählen obwohl ich keine Antwort bekomme.
select count(ready) from (select max(ready) as ready from rules where time > now() - 1h group by time(1m)) where ready > 0
Dies ist v1.2.2.
Wie kann ich die Anzahl der Ergebnisse zurückgeben?