2017-05-26 1 views
0

Ich habe eine Tabelle wie folgt aus:PostgreSQL Ansicht mit gefilterten Spalten

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 

ich eine Ansicht wie diese brauchen:

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 

Wie erstelle ich eine Spalte mit so etwas wie

WHERE action LIKE 'note' 

?

Antwort

2

Sie könnten CASE Ausdruck verwenden.

Abfrage

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

in Ordnung groß. Dies gibt jedoch 1 für jede Zeile zurück. Kann ich eine SUMME in das Gehäuse legen? –

+0

Nein. Sie können nicht. – Wanderer

+0

Ist es nicht möglich, die Anzahl der Sitzungen pro Tag zu erhalten? –

Verwandte Themen