如何组合多个查询

how to combine multiple queries

我下面有table:

Table 姓名:统计

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  

我取消了 TABLE STAT 上的月份列,其中包含数值。 获得的结果

---------------------
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

我现在需要向这个逆透视数据集添加一个新列。 例如名为 "PROFILE" 的列。 我尝试将代码编写为

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

然后我尝试显示反透视数据集的结果和通过编写

添加的新列
SELECT * from STAT

不过,我现在看到新列已添加到原始数据集中,但我看不到未透视的数据。我希望看到未透视的数据和添加的最终新列。 我假设我需要在代码的 unpivot 部分的某个地方写一个 ALTER table 。在这里提供一些帮助将不胜感激?

您实际上需要创建一个新的 table 来存储未透视的数据。这可以通过将查询包装在 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;