Несколько групп по общему количеству в postgresql

Я могу получить вид данных

  • верхушки

    • девушка 5
    • мальчик 10
  • джинсовый

    • девушка 5
    • мальчики 15

Теперь я хочу добавить одну дополнительную строку Total в выводе запроса. подобно

  • Всего
    • девушка 10
    • мальчик 25

Это мой запрос

    SELECT id, cloth_type, gender, qty, from
(SELECT 
    g.id as id,cloth.type as cloth_type, g.gender as gender, g.qty as qty
    0 AS sortorder -- added a sortorder column
       from
            cloth_master cloth
            inner join
            gender_master g on cloth.gender_id = g.id
            group by cloth.type, g.gender g.id
    UNION ALL
        SELECT
            g.id as id,cloth.type as cloth_type, g.gender as gender, g.qty as qty
            1 AS sortorder -- added a sortorder column
       from
            cloth_master cloth
            inner join
            gender_master g on cloth.gender_id = g.id
            group by cloth.type, g.gender g.id
) AS unionquery
) ORDER BY sortorderenter

Я пытаюсь с UNION ALL, но не получаю точного решения, может ли кто-нибудь мне помочь?

1 ответ

В Postgres вы можете использовать наборы группировки;

select coalesce(col1, 'Total'), col2, count(*)
from t
group by grouping sets ((col1, col2), (col1));

Вы можете прочитать о GROUPING SETS в документации.

Другие вопросы по тегам