mysql - SQL:如何将多行添加在一起以生成新行?

标签 mysql sql

我想将行加在一起并在表格底部生成一个新行。

在下面的示例中,我想将美国、加拿大和墨西哥的人口相加,并向表中添加一个新行(请参见下面的箭头和红色单元格)。

enter image description here

在 Excel 中,这只是一个使用 SUM 函数的案例,但我如何在 SQL 中执行此操作?当我使用 sum(population) 时,这会生成一个新列 - 但我需要它作为一行。

目前我的解决方案是创建一个聚合了人口列的新表,然后 UNION ALL 到我的原始表。不是很优雅我想你会承认。

必须有一种方法可以在不使用 UNION ALL 的情况下使用 SQL 完成它吗?

谢谢

最佳答案

你可以使用卷起

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  

关于mysql - SQL:如何将多行添加在一起以生成新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53302147/

相关文章:

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

sql - 使用 group by 查询从表中选择特定行

mysql - 如何合并两个MySQL表

sql - 当一个值为 null 时未拾取不匹配

mysql - 多个条件匹配时如何从sql数据库中读出数据

mysql - Rails mysql 获取旧值

MYSQL - 设置/更新语法

php - 取一个表到另一个表的属性的平均值

sql - 将键值列分组为每组一行,每个键列

sql - 在 SQL Server 中将所有表数据类型从文本更改为 varchar