2017-08-01 22 views
0

我把工作去标准化为引号,因为它可能不是正确的放置方式,但不太确定如何描述它。 ..创建一个select来“去规格化”表中的数据

我有以下表

Source Priority Attribute 
A  1   Name 
B  2   Name 
C  3   Name 
A  1   Address 
B  2   Address 
C  3   Address 
A  2   Email 
B  3   Email 
C  1   Email 

我想我的选择返回:

Source Name_Pri Addr_Pri Email_Pri 
A  1   1   2 
B  2   2   3 
C  3   3   1  

感谢

回答

2

您正在寻找一个支点。我经常使用条件聚合来做到这一点:

select source, 
     max(case when attribute = 'Name' then priority end) as name_priority, 
     max(case when attribute = 'Address' then priority end) as address_priority, 
     max(case when attribute = 'Email' then priority end) as email_priority 
from t 
group by source; 
+0

完美!这有工作。非常感谢!知道这将是一个简单的... – alwaystrying

相关问题