将一组行转换为sql中的新列

时间:2018-07-13 15:16:42

标签: sql

我正在处理一个报告,我需要一个SQL查询来更改以下内容:

DATABASE    SCHEMA   Table Name   Rows
A             1            X        12
B             1            X        32
A             2            X        10
B             2            X        22
A             3            Y        14
B             3            Y        21
A             4            Z        33
B             4            Z        33

像这样:

SCHEMA     TABLE    A - Rows    B - Rows
  1          X         12          32
  2          X         10          22
  3          Y         14          21
  4          Z         33          33

两个数据库中的同一张表都有多个条目,这就是为什么我无法弄清楚的原因。有人可以帮我这个忙吗?

1 个答案:

答案 0 :(得分:0)

您的样本数据表明有条件的汇总:

select SCHEMA, table_name, 
       sum(case when db_name = 'A' then rows else 0 end) as A_row,
       sum(case when db_name = 'B' then rows else 0 end) as B_row,
       . . .
from table t
group by SCHEMA, table_name;