InfluxQL «группа по времени» во внешнем запросе требует статистической функции во внутреннем запросе - PullRequest
0 голосов
/ 29 августа 2018

Учитывая этот запрос и его вывод, я хотел бы суммировать все значения с одинаковыми временными метками (в данном случае три встречаются в 2018-08-28T22:57:19.949).

SELECT d from (select non_negative_derivative(f64, 1m) as d 
FROM _ 
WHERE __name__='rx_bytes' and dp_id='0x7' 
GROUP BY port_name) 
WHERE d > 0

name: _
time                     d
----                     -
2018-08-28T22:57:09.586Z 12209.302325581395
2018-08-28T22:57:10.558Z 12962.962962962964
2018-08-28T22:57:19.949Z 81390.69321690981
2018-08-28T22:57:19.949Z 10676.179320626132
2018-08-28T22:57:19.949Z 10676.179320626132

Я попытался сделать это с помощью оператора GROUP BY time во внешнем запросе, который соответствует периодичности вызова non_negative_derivative. Однако, когда я пытаюсь это сделать, я вижу ошибку:

SELECT sum(d) 
FROM (
    SELECT non_negative_derivative(f64, 1m) as d 
    FROM _ 
    WHERE __name__='rx_bytes' and dp_id='0x7'
    GROUP BY port_name
) 
GROUP BY time(1m)

ERR: aggregate function required inside the call to non_negative_derivative

Это смущает меня, так как GROUP BY time происходит вне внутреннего запроса, который содержит вызов non_negative_derivative. Почему внешний GROUP BY влияет на внутренний non_negative_derivative? Есть ли способ, которым я могу обойти это? Есть ли лучший способ подойти к этой проблеме?

Для справки ниже приведено менее компактное представление основных данных.

SELECT non_negative_derivative(f64, 1m) as d 
FROM _ 
WHERE __name__='rx_bytes' and dp_id='0x7' 
GROUP BY port_name 
LIMIT 5

name: _
tags: port_name=LOCAL
time                     d
----                     -
2018-08-28T22:57:08.554Z 0
2018-08-28T22:57:09.586Z 0
2018-08-28T22:57:10.558Z 0
2018-08-28T22:57:19.949Z 0
2018-08-28T22:57:20.581Z 0

name: _
tags: port_name=s7-eth1
time                     d
----                     -
2018-08-28T22:57:08.554Z 0
2018-08-28T22:57:09.586Z 0
2018-08-28T22:57:10.558Z 0
2018-08-28T22:57:19.949Z 10676.179320626132
2018-08-28T22:57:20.581Z 0

name: _
tags: port_name=s7-eth2
time                     d
----                     -
2018-08-28T22:57:08.554Z 0
2018-08-28T22:57:09.586Z 0
2018-08-28T22:57:10.558Z 0
2018-08-28T22:57:19.949Z 10676.179320626132
2018-08-28T22:57:20.581Z 0

name: _
tags: port_name=s7-eth3
time                     d
----                     -
2018-08-28T22:57:08.554Z 0
2018-08-28T22:57:09.586Z 12209.302325581395
2018-08-28T22:57:10.558Z 12962.962962962964
2018-08-28T22:57:19.949Z 81390.69321690981
2018-08-28T22:57:20.581Z 0
...