SQL:如何将多行加在一起以产生新行?

时间:2018-11-14 14:09:02

标签: mysql sql

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

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

enter image description here

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

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

必须有一种不用SQL使用UNION ALL的方法吗?

谢谢

3 个答案:

答案 0 :(得分:1)

只需使用以下SQL插入查询。

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

您必须将TABLE_NAME更改为表的名称,并相应地使用列值。

答案 1 :(得分:1)

您可以尝试做一些类似的事情

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

答案 2 :(得分:1)

您可以使用汇总

{% extends "page.twig" %}
{% block additional %}

<div id="page-services">
  <section id="services">  
    <div class="row small-up-1 large-up-1">
    <div class="small-12 medium-11 large-9 columns small-centered">
    <div class="services-grid animated fadeIn wow">
    <p align="center">
      {{post.services_desc}}
    </p>
</div>
</div>
</div>
<div class="line centered"></div>
</div>

<center>
<div class="row">
<div class="small-12 medium-11 large-9 columns small-centered">
<div class="features-header animated fadeIn wow">

{% for item in post.get_field('services_ist') %}

  <div class="column services">
    <h2 class="capitalize bold">
      {{item.services_title}}
    </h2>

  {% if item.services_subtitle %}
    <h4 class="subtitle">
      {{item.services_subtitle}}
    </h4>

<div class="line thin"></div>

  {% endif %}

  {% if item.services_content %}
    <div class="description">
      {{item.services_content}}
      <br><br>
    </div>
  {% endif %}

{% if feats.services_feat %}
  {% for feats in post.get_field('services_feat') %}
    <p>{{feats.feat_title}}</p>
  {% endfor %}


  {% if feats.feats_desc %}
    <h4 class="feats description">
      {{feats.feats_desc}}
    </h4>
  {% endif %}

{% endif %}

  </div>
{% endfor %}
</center>
</div>
</div>
</div>
  </section>
</div>
{% endblock %}

或使用联合

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