SQL: как добавить несколько строк вместе, чтобы создать новую строку? - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу добавить строки вместе и создать новую строку внизу таблицы.

В приведенном ниже примере я хочу добавить население США, Канады и Мексики и добавить новую строку в таблицу (см. Стрелку и красную ячейку ниже).

enter image description here

В Excel это просто случай использования функции SUM, но как мне это сделать в SQL?Когда я использую sum(population), это создает новый столбец - но он мне нужен как строка.

На данный момент мое решение состоит в том, чтобы создать новую таблицу с агрегированным столбцом заполнения, а затем UNION ALL в исходную таблицу.Не очень элегантно, я думаю, вы признаете.

Должен быть способ сделать это с помощью SQL без использования UNION ALL?

Спасибо

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Вы можете попробовать сделать несколько похожих

INSERT INTO T( country, popolation )
SELECT "North America region" as country, SUM( Population ) as Population
FROM T
WHERE country in ('US','Canada','Mexico')
0 голосов
/ 14 ноября 2018

Вы можете использовать сворачивание

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  
0 голосов
/ 14 ноября 2018

Просто используйте следующий SQL-запрос вставки.

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

Вы должны изменить TABLE_NAME на имя вашей таблицы и соответственно использовать значения столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...