Agregaciones¶
Una agregación sobre un campo¶
GET /public/pedido/importe/sum?cliente_id=3
GET /public/pedido/importe/mean
GET /public/pedido/creado_en/max
GET /public/pedido/creado_en/min?min_creado_en=2026-01-01T00:00:00
Con los mismos filtros que la lista. sum y mean necesitan un campo
numérico; max y min admiten también fechas. Devuelven una fila con el resultado en
data: [{ "group": {}, "data": { "sum_importe": 1200.0 } }].
Varias a la vez, y agrupadas¶
POST /public/pedido/agg
{
"operations": {
"aggregations": { "sum": ["importe"], "count": ["id"] },
"group_by": ["estado", { "field": "creado_en", "trunc": "month" }],
"order_by": [{ "operation": "sum", "field": "importe", "direction": "desc" }],
"limit": 10
},
"filters": { "cliente_id": 3 }
}
{
"status": "success",
"data": [
{ "group": { "estado": "pagado", "creado_en_month": "2026-09-01T00:00:00" },
"data": { "sum_importe": 1200.0, "count_id": 8 } }
]
}
- Cada fila es
{ group, data }. Singroup_byhay una sola, congroupvacío. - Un
in_con la lista vacía enfiltersno casa con ninguna fila: la respuesta es la de cero filas —singroup_by, una concount_* = 0y lo demásnull; con él, ninguna—, la misma que con un filtro que no casa con nada, y la operación se valida igual. Antes se agregaba la tabla entera: el DAO trataba la lista vacía como «sin filtro». - Los resultados se llaman
<operación>_<campo>:sum_importe,count_id. - Las operaciones son
sum,mean,max,minycount, y cada una admite columnas o expresiones con nombre:{ "expr": "precio*cantidad", "alias": "total" }dasum_total. - Un campo de fecha en
group_bynecesita sutrunc:year,quarter,month,week,day,hour,minute, o un intervalo (15min,30min,3h,6h,12h). Engroupaparece como<campo>_<trunc>. - El ejemplo que rellena Swagger al pulsar «Try it out» usa columnas de esa tabla y es válido.
Cuando la operación no se puede hacer¶
Un campo que no existe, la media de un texto, el max de un enumerado o una agrupación imposible
son un 422 con el motivo, y falla la petición entera aunque lo demás fuera válido. count vale
para cualquier columna; sum y mean, para números; max y min, para números, fechas y textos;
una columna cifrada, hasheada o enumerada solo se cuenta: