|
|
|
|
@ -136,16 +136,24 @@ export default class PostgresQuery { |
|
|
|
|
query = columnName.params[0]; |
|
|
|
|
|
|
|
|
|
let aggregate = _.find(column, (g: any) => g.type === 'aggregate'); |
|
|
|
|
let special = _.find(column, (g: any) => g.type === 'special'); |
|
|
|
|
|
|
|
|
|
if (aggregate) { |
|
|
|
|
query = aggregate.params[0] + '(' + query + ')'; |
|
|
|
|
if (special) { |
|
|
|
|
query = aggregate.params[0] + '(' + query + ' ORDER BY ' + this.target.timeColumn + ')'; |
|
|
|
|
} else { |
|
|
|
|
query = aggregate.params[0] + '(' + query + ')'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let special = _.find(column, (g: any) => g.type === 'special'); |
|
|
|
|
if (special) { |
|
|
|
|
let over = ''; |
|
|
|
|
if (this.hasMetricColumn()) { |
|
|
|
|
over = 'PARTITION BY ' + this.target.metricColumn; |
|
|
|
|
} |
|
|
|
|
if (!aggregate) { |
|
|
|
|
over += 'ORDER BY ' + this.target.timeColumn; |
|
|
|
|
} |
|
|
|
|
switch (special.params[0]) { |
|
|
|
|
case 'increase': |
|
|
|
|
query = query + ' - lag(' + query + ') OVER (' + over + ')'; |
|
|
|
|
|