mysql-connector: fix GROUP BY clause for working with MySQL 5.7, issue #445

This commit is contained in:
Alexander Zobnin
2017-09-11 18:37:23 +03:00
parent 0a2261f682
commit 35f89bf97a
4 changed files with 15 additions and 9 deletions

View File

@@ -78,12 +78,13 @@ function ZabbixDBConnectorFactory(datasourceSrv, backendSrv) {
let itemids = _.map(items, 'itemid').join(', ');
let table = HISTORY_TO_TABLE_MAP[value_type];
let time_expression = `clock DIV ${intervalSec} * ${intervalSec}`;
let query = `
SELECT itemid AS metric, clock AS time_sec, ${aggFunction}(value) AS value
SELECT itemid AS metric, ${time_expression} AS time_sec, ${aggFunction}(value) AS value
FROM ${table}
WHERE itemid IN (${itemids})
AND clock > ${timeFrom} AND clock < ${timeTill}
GROUP BY time_sec DIV ${intervalSec}, metric
GROUP BY ${time_expression}, metric
`;
query = compactSQLQuery(query);
@@ -110,12 +111,13 @@ function ZabbixDBConnectorFactory(datasourceSrv, backendSrv) {
let valueColumn = _.includes(['avg', 'min', 'max'], consolidateBy) ? consolidateBy : 'avg';
valueColumn = consolidateByTrendColumns[valueColumn];
let time_expression = `clock DIV ${intervalSec} * ${intervalSec}`;
let query = `
SELECT itemid AS metric, clock AS time_sec, ${aggFunction}(${valueColumn}) AS value
SELECT itemid AS metric, ${time_expression} AS time_sec, ${aggFunction}(${valueColumn}) AS value
FROM ${table}
WHERE itemid IN (${itemids})
AND clock > ${timeFrom} AND clock < ${timeTill}
GROUP BY time_sec DIV ${intervalSec}, metric
GROUP BY ${time_expression}, metric
`;
query = compactSQLQuery(query);