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

问题描述 投票:1回答:1

我正在编写一个报告,我需要一个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

两个数据库中的同一个表有多个条目,这就是为什么我无法解决这个问题。有人可以帮我解决这个问题。

sql
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.