consolidateBy(sum) must calculate sums inside the one-hour trend period, fixes #604

This commit is contained in:
Tommi Palomäki
2018-10-25 11:40:57 +03:00
committed by Alexander Zobnin
parent 259ed9a3ad
commit 3b88711baf

View File

@@ -33,7 +33,8 @@ const consolidateByFunc = {
const consolidateByTrendColumns = { const consolidateByTrendColumns = {
'avg': 'value_avg', 'avg': 'value_avg',
'min': 'value_min', 'min': 'value_min',
'max': 'value_max' 'max': 'value_max',
'sum': 'num*value_avg' // sum of sums inside the one-hour trend period
}; };
export class SQLConnector extends DBConnector { export class SQLConnector extends DBConnector {
@@ -98,7 +99,7 @@ export class SQLConnector extends DBConnector {
let promises = _.map(grouped_items, (items, value_type) => { let promises = _.map(grouped_items, (items, value_type) => {
let itemids = _.map(items, 'itemid').join(', '); let itemids = _.map(items, 'itemid').join(', ');
let table = TREND_TO_TABLE_MAP[value_type]; let table = TREND_TO_TABLE_MAP[value_type];
let valueColumn = _.includes(['avg', 'min', 'max'], consolidateBy) ? consolidateBy : 'avg'; let valueColumn = _.includes(['avg', 'min', 'max', 'sum'], consolidateBy) ? consolidateBy : 'avg';
valueColumn = consolidateByTrendColumns[valueColumn]; valueColumn = consolidateByTrendColumns[valueColumn];
let query = this.sqlDialect.trendsQuery(itemids, table, timeFrom, timeTill, intervalSec, aggFunction, valueColumn); let query = this.sqlDialect.trendsQuery(itemids, table, timeFrom, timeTill, intervalSec, aggFunction, valueColumn);