sql:如何将多行添加到一起以生成新行?

tv6aics1  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(323)

我想将行添加到一起,并在表的底部生成一个新行。
在下面的例子中,我想把美国、加拿大和墨西哥的人口加起来,并在表中添加一个新行(见下面的箭头和红细胞)。

在excel中,这只是一个使用sum函数的例子,但是如何在sql中做到这一点呢?当我使用 sum(population) 这将生成一个新列-但我需要它作为一行。
目前,我的解决方案是创建一个新表,聚合population列,然后 UNION ALL 我原来的table。我想你会承认,这不是很优雅。
必须有一种不使用sql的方法 UNION ALL ?
谢谢

jtoj6r0c

jtoj6r0c1#

你可以试着做一些类似的事情

INSERT INTO T( country, popolation )
SELECT "North America region" as country, SUM( Population ) as Population
FROM T
WHERE country in ('US','Canada','Mexico')
c0vxltue

c0vxltue2#

只需使用下面的SQLINSERT查询。

Insert into TABLE_NAME (Country, Population) 
values ('North American Region', (select sum(Population) from TABLE_NAME));

你必须改变主意 TABLE_NAME 并相应地使用列值。

ghhkc1vu

ghhkc1vu3#

你可以用卷起来

SELECT country, sum(Population)  as Population
FROM your_table
group by country 
WITH ROLLUP;

或者使用工会

SELECT country, sum(Population)  as Population
FROM  your_table 
group by country
union 
SELECT "North America region", SUM( Population ) as Population
FROM

相关问题