Sql 如何创建一个新行来汇总前面的行?
对于最后的输出,我希望有一个表,其中有另一行,这是我以前的行的总和。我有点卡住了。我尝试了在互联网上找到的汇总功能,但它似乎对我不起作用 例如,到目前为止,我有: (第一个表的结果,但我想得到第二个表的最终输出)Sql 如何创建一个新行来汇总前面的行?,sql,amazon-redshift,Sql,Amazon Redshift,对于最后的输出,我希望有一个表,其中有另一行,这是我以前的行的总和。我有点卡住了。我尝试了在互联网上找到的汇总功能,但它似乎对我不起作用 例如,到目前为止,我有: (第一个表的结果,但我想得到第二个表的最终输出) 在图中,我现在有了第一个表格,我选择了字段,并从一个更大的表格中进行了计算。但是我现在想使用我在上面创建的第一个表到第二个表中。创建一个名为“总计”的新行,并汇总所有其他内容。如何执行此操作?您可以编写一个通用表表达式(CTE)以重复使用总计的计算,如下所示: with aggreg
在图中,我现在有了第一个表格,我选择了字段,并从一个更大的表格中进行了计算。但是我现在想使用我在上面创建的第一个表到第二个表中。创建一个名为“总计”的新行,并汇总所有其他内容。如何执行此操作?您可以编写一个通用表表达式(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
只需确保联合体的两个部分具有相同的列集和数据类型
在这种特定情况下,union
下面的部分类似于
select
shop_id
,'Total'
,sum(total_customer)
,sum(total_customer_yearly)
from aggregated_table
group by 1
您可以使用
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”是什么意思?你必须试一下,你会明白的。当您仅从子查询中选择而不求和时,总计上方的行由位于
union
上方的查询部分返回。Group by 1指按车间id分组(列表中的第一列)。我想可能会有不同的shop\u id
s,您可以从中获取总数