2017-05-26 64 views
0

我有這樣的一個表:用過濾列PostgreSQL視圖

date_added  owner  action 
01-02-2016  1   note 
04-02-2016  1   call 
04-02-2016  1   call 
05-02-2016  1   note 
05-02-2016  1   meeting 
06-02-2016  1   meeting 
06-02-2016  1   note 
06-02-2016  1   cal 
06-02-2016  1   note 
10-02-2016  1   call 
10-02-2016  1   note 
10-02-2016  1   meeting 

我需要這樣一個觀點:

date_added  owner  note  call  meeting 
01-02-2016  1   1   0   0 
04-02-2016  1   0   2   0 
05-02-2016  1   0   0   1 
06-02-2016  1   2   1   1 
10-02-2016  1   1   1   1 

我如何創建一個列有類似

WHERE action LIKE 'note' 

回答

2

您可以使用CASE表達式。

查詢

select date_added, owner, 
sum(case action when 'note' then 1 else 0 end) note, 
sum(case action when 'call' then 1 else 0 end) call, 
sum(case action when 'meeting' then 1 else 0 end) meeting 
from your_table_name 
group by date_added, owner; 

Find demo here

+0

好大。然而這對每一行返回1。我可以在案件中放置一個SUM嗎? –

+0

不,你不能。 – Wanderer

+0

無法獲得每天的會議次數嗎? –