【发布时间】:2019-09-21 12:54:10
【问题描述】:
我正在设置 Grafana 和 MariaDB 的组合。我的目标之一是将表中值的累积总和显示为 Grafana 时间序列。
我似乎在 SQL 查询中需要一个求和变量。
这样的查询有效,如果我在数据库中手动输入(例如在 HeidiSQL 中)。当我将查询方案接管到 Grafana Web 界面时,它不起作用。
示例:
我有一张这样的桌子
`ID` INT(11) NOT NULL AUTO_INCREMENT,
`Datum` DATE NOT NULL,
'Sachkosten` INT(11) NOT NULL
我想显示 Sachkosten 的累积总和。当我执行时,它在数据库上手动运行:
set @csum := 0;
SELECT
UNIX_TIMESTAMP(Datum) as time_sec,
Datum,
Sachkosten as value,
'Sachkosten' as metric,
(@csum := @csum + Sachkosten) as cumulative_sum
FROM aufwand
ORDER BY Datum ASC
上述直接在数据库上按预期工作:第五列是第三列的累积和:
"1569801600" "2019-09-30" "-6000" "Sachkosten" "-6000"
"1569801600" "2019-09-30" "35000" "Sachkosten" "29000"
"1572220800" "2019-10-28" "-4000" "Sachkosten" "25000"
当我在 Grafana 中输入相同的内容时,我在使用变量 @csum 时遇到错误。在上面的例子中:
Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT
UNIX_TIMESTAMP(Datum) as time_sec,
Datum,
Sachkosten as value' at line 2
我们这里有一些英雄知道如何让这些查询变量在 Grafana 中工作吗?或者其他方式来处理这个累积总和?
【问题讨论】: