как объединить несколько запросов - PullRequest
0 голосов
/ 02 января 2019

У меня есть следующая таблица:

Название таблицы: STAT

Region   M07  M08 M09 
---------------------
P1       0    1   0    
P2       0    0   0   
P3       2    0   0    
P4       0    0   0     
P5       0    0   0     
P6       0    0   0   
P7       9    0   3  

Я ОТКЛЮЧИЛ столбцы месяцев в ТАБЛИЦЕ СТАТИСТИКИ, которые содержат числовые значения. Получен результат

---------------------
Region   Month  Qty
---------------------
P1      M07    0
P1      M08    1
P1      M09    0
P2      M07    0
P2      M08    0
P2      M09    0

UNPIVOT был сделан с использованием этого кода

select Region, month, qty FROM
(
    SELECT Region, 'M07' AS month, M07 AS qty from STAT
    UNION ALL
    SELECT Region, 'M08' AS month, M08 AS qty from STAT
    UNION ALL 
    SELECT Region, 'M09' AS month, M09 AS qty from STAT
)x

Теперь мне нужно добавить новый столбец в этот неотключенный набор данных. Например, столбец с именем «ПРОФИЛЬ». Я пытался написать код как

ALTER TABLE STAT
ADD COLUMN `Profile` CHAR(8) NOT NULL DEFAULT 'MI';

Затем я попытался отобразить результаты неотключенного набора данных и добавленного нового столбца, написав

SELECT * from STAT

Однако теперь я вижу новый столбец, добавленный к исходному набору данных, но я не вижу непивотированных данных. Я хотел бы видеть непивотированные данные и добавленный последний новый столбец. Я предполагаю, что мне нужно написать таблицу ALTER где-нибудь в неотключенной части кода. Была бы признательна за помощь?

1 Ответ

0 голосов
/ 02 января 2019

Вам нужно создать новую таблицу для хранения непивотированных данных.Это может быть достигнуто путем включения вашего запроса в оператор CREATE TABLE ... AS SELECT.

CREATE TABLE stat2 AS
SELECT region, 'M07' AS month, M07 AS qty from stat
UNION ALL
SELECT region, 'M08', M08 AS from stat
UNION ALL 
SELECT region, 'M09', M09 AS from stat;

Затем вы можете сделать:

ALTER TABLE STAT2
ADD COLUMN `Profile` CHAR(8) NOT NULL DEFAULT 'MI';

И, конечно же:

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