String where = timeFilter + (filterExpression == null ? "" : (" AND (" + filterExpression + ")"));
String measureAgg = convertSqlFunction(measure != null &&
measure.aggregation != null ? measure.aggregation : COUNT);
String measureColumn = measure != null &&
checkTableColumn(getColumnReference(grouping) + "_group"),
format(segmentRanked ? (" CASE WHEN segment_rank > 20 THEN '" + OTHERS_TAG + "' ELSE cast(%s as varchar) END,\n") : "cast(%s as varchar),", checkTableColumn(getColumnReference(segment) + "_segment")),
format(convertSqlFunction(intermediateAggregation.get(), measure.aggregation), "value"),
segmentRanked ? format("row_number() OVER (PARTITION BY %s ORDER BY value DESC) AS segment_rank,\n", checkCollection(format(getColumnReference(grouping), "value") + "_group")) : "",
format(convertSqlFunction(intermediateAggregation.get(), measure.aggregation), "value"),
computeQuery);
} else {
OTHERS_TAG,
windowColumn,
format(convertSqlFunction(intermediateAggregation.get(), measure.aggregation), "value"),
format(convertSqlFunction(intermediateAggregation.get(), measure.aggregation), "value"),
computeQuery, bothActive ? ", 3" : "", bothActive ? ", 2" : "", bothActive ? 3 : 2);
} else {