Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何创建一个新行来汇总前面的行?_Sql_Amazon Redshift - Fatal编程技术网

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,您可以从中获取总数