对于最终输出,我想有一个表,该表的另一行是我之前各行的总和。我有点卡住。我尝试了在互联网上找到的汇总功能,但似乎对我不起作用。
到目前为止,例如:
(第一个表的结果,但我想得到第二个表的最终输出)
在图像中,我当前拥有第一个表,我已选择了这些字段并从更大的表中进行了计算。但是我现在想将上面创建的第一个表用于第二个表。创建一个标题为Total的新行,并对所有其他内容进行汇总。我该怎么做?
答案 0 :(得分:2)
您可以使用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;
答案 1 :(得分:0)
您可以编写一个公用表表达式(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