diff --git a/lib/cartodb/models/dataview/aggregation.js b/lib/cartodb/models/dataview/aggregation.js index fed5e14e..0b0cc4c7 100644 --- a/lib/cartodb/models/dataview/aggregation.js +++ b/lib/cartodb/models/dataview/aggregation.js @@ -2,7 +2,7 @@ const BaseDataview = require('./base'); const debug = require('debug')('windshaft:dataview:aggregation'); const filteredQueryTpl = ctx => ` - filtered_source AS ( + ( SELECT * FROM (${ctx.query}) _cdb_filtered_source ${ctx.aggregationColumn && ctx.isFloatColumn ? ` @@ -14,7 +14,7 @@ const filteredQueryTpl = ctx => ` ${ctx.aggregationColumn} != 'NaN'::float` : '' } - ) + ) filtered_source `; const summaryQueryTpl = ctx => ` @@ -43,7 +43,7 @@ const rankedCategoriesQueryTpl = ctx => ` ${ctx.column} AS category, ${ctx.aggregationFn} AS value, row_number() OVER (ORDER BY ${ctx.aggregationFn} desc) as rank - FROM filtered_source + FROM ${filteredQueryTpl(ctx)} ${ctx.aggregationColumn !== null ? `WHERE ${ctx.aggregationColumn} IS NOT NULL` : ''} GROUP BY ${ctx.column} ORDER BY 2 DESC @@ -134,7 +134,6 @@ const aggregationFnQueryTpl = ctx => `${ctx.aggregation}(${ctx.aggregationColumn const aggregationDataviewQueryTpl = ctx => ` WITH - ${filteredQueryTpl(ctx)}, ${summaryQueryTpl(ctx)}, ${rankedCategoriesQueryTpl(ctx)}, ${categoriesSummaryMinMaxQueryTpl(ctx)},