Как мне создать новую строку, которая суммирует предыдущие строки? - PullRequest
0 голосов
/ 14 октября 2018

Для окончательного вывода я хотел бы иметь таблицу с другой строкой, которая является суммой моих предыдущих строк.Я немного застрял.Я попробовал функцию свертывания, которую я нашел в интернете, но у меня она не работает.

Пока у меня есть, например,

the results of the first table but I would like to have the final output of the second

(результаты первой таблицы, но я хотел бы получить окончательный вывод второй)

На изображении у меня в настоящее время есть первая таблица, в которой я выбрал поля и произвел вычисления, которые я хотел получить изнамного больший стол.Но теперь я хотел бы использовать эту первую таблицу, которую я создал выше, во вторую.Создаем новую строку под названием Total и суммируем все остальное.Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Вы можете использовать union all:

select shop_id, subscription_plan, total_customer_a_), tot_customer_yearly
from t
union all
select shop_id, 'total', sum(total_customer_a_b), sum(tot_customer_yearly)
from t
group by shop_id;
0 голосов
/ 14 октября 2018

вы можете написать общее табличное выражение (CTE), чтобы повторно использовать вычисление итогов в итоговой сумме, например:

with
aggregated_data as (
    -- your query that produces table 1
)
select *
from aggregated_data
union 
select 
 -- list of fields or simple text values and grand total as the sum
from aggregated_data

, просто убедитесь, что 2 части объединения имеют одинаковый набор столбцов итипы данных

в этом конкретном случае часть ниже union будет выглядеть примерно так:

select 
 shop_id
,'Total' 
,sum(total_customer)
,sum(total_customer_yearly)
from aggregated_table
group by 1
...