Después de mucho batallar pudimos dar con la respuesta de este conflicto que ciertos usuarios de nuestro sitio web tienen. Si quieres compartir algún detalle no dejes de compartir tu conocimiento.
Solución:
Puede lograr esto usando una consulta UNION. En la consulta a continuación, agrego una columna de ordenación artificial y envuelvo la consulta de unión en una consulta externa para que la línea de suma aparezca en la parte inferior.
[I’m assuming you’ll be adding your joins and group by clauses…]
SELECT section, money, requests FROM -- outer select, to get the sorting right.
( SELECT
organizations.name || ' - ' || section.name as Section,
SUM(requests.money) as money,
COUNT(*) as requests,
0 AS sortorder -- added a sortorder column
FROM
schema.organizations
INNER JOINs omitted --
WHERE
-- omitted --
GROUP BY
-- omitted --
-- ORDER BY is not used here
UNION
SELECT
'BMO - Total' as section,
SUM(requests.money) as money,
COUNT(*) as requests,
1 AS sortorder
FROM
schema.organizations
-- add inner joins and where clauses as before
) AS unionquery
ORDER BY sortorder -- could also add other columns to sort here
La función de resumen en esta respuesta https://stackoverflow.com/a/54913166/1666637 podría ser una forma conveniente de hacer esto. Más sobre esto y funciones relacionadas aquí: https://www.postgresql.org/docs/devel/queries-table-expressions.html#QUERIES-GROUPING-SETS
Algo como esto, código no probado
WITH w as (
--SELECT statement from above--
)
SELECT * FROM w ROLLUP((money,requests))
Tenga en cuenta los paréntesis dobles, son significativos
Eres capaz de sostener nuestra faena exponiendo un comentario y dejando una puntuación te damos la bienvenida.