Using Pre-Aggregation with calculated measures of types: string/time
- Dominant language
- Rust
- Stars
- 20.8k
- Forks
- 2.1k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 181
Description
**Problem**
I have some calculated measures that either aggregate `string values` to an array using `array_agg` or finding a `max timestamp` using `MAX(time_column).
When trying to use pre-aggregations on those measures, I noticed that the pre-agg table is created correctly, however, the select clause is using the `SUM` function on those fields (string/timestamp).
Below are the Cube Schema, and both queries Im getting from cubejs,cubestore.
Was wandering if thats even possible, Thank you!
**Related Cube.js schema**
```javascript
cube(`Cube`, {
sql: `SELECT * FROM dummy`,
preAggregations: {
main: {
dimensions: [CUBE.name],
measures: [CUBE.idsWithThatName]
}
},
measures: {
idsWithThatName: {
type: `string`,
sql: `array_agg(${CUBE.id})`
}
},
dimensions: {
name: {
sql: `name`,
type: `string`
},
id: {
sql: `id`,
type: `string`
}
}
})
```
**Related Cube.js generated SQL**
Regular query, without pre-aggregation: `SELECT name, array_agg(id) FROM dummy group by 1;`
Pre-Aggregation Query:
```SELECT `cube__name` `cube__name`,
sum(`cube__ids_with_that_name`) `cube__ids_with_that_name`
FROM local_cubejs_pre_agg.pre_agg_table_with_uniq_id AS `pre_agg_table`
GROUP BY 1
ORDER BY 2 DESC
LIMIT 20000```
Contributor guide
Assessment
This issue has not been assessed yet.