如何在SQL中将常量值更改为列标题?

mik*_*ike 1 sql db2 db2-400

SQL查询:

select type,count(*), 'Active'                            
   from file where removed = '0'                                
union all 
select type,count(*), 'Removed' 
   from file where removed = '1'  
Run Code Online (Sandbox Code Playgroud)

得到:

 TYPE                     COUNT ( * )   Constant value  
  A                         24,168      Active       
  A                              1      Removed      
  B                          8,280      Active       
  B                          1,263      Removed               
Run Code Online (Sandbox Code Playgroud)

但是,如何更改SQL以获取:

TYPE                     Active  Removed   
A                         24,168    1       
B                          8,280  1,263  
Run Code Online (Sandbox Code Playgroud)

补充的可选问题:包含以下总数的最佳方法是什么?

TYPE                     Active  Removed   
A                         24,168      1       
B                          8,280  1,263  
Total                     32,448  1,264    
Run Code Online (Sandbox Code Playgroud)

这是对补充内容的最佳答案,如果您发现任何缺陷或改进,请告诉我:

select 
    type, 
    sum(CASE WHEN removed = '0' THEN 1 ELSE 0 END) 'Active',
    sum(CASE WHEN removed = '1' THEN 1 ELSE 0 END) 'Removed'                            

from file                                
Group by type

union all

select 'Total',
sum(CASE WHEN removed = '0' THEN 1 ELSE 0 END) 'Active',
sum(CASE WHEN removed = '1' THEN 1 ELSE 0 END) 'Removed'                            

from file                                                         
Run Code Online (Sandbox Code Playgroud)

感谢所有评论或回答的人,感谢您的帮助.

Fil*_*ins 5

你可以试试:

select 
    type, 
    sum(CASE WHEN removed = '0' THEN 1 ELSE 0 END) 'Active',
    sum(CASE WHEN removed = '1' THEN 1 ELSE 0 END) 'Removed'                            
from file                                
Group by type
Run Code Online (Sandbox Code Playgroud)