如何在postgreSQL中的一行中获取多个值?

Zak*_*ain 3 sql postgresql-9.4

我在postgreSQL9.4中有数据库表名emp_leave

|emp_name|leave_type|total_lday|
| Tame   |    PL    |     3    |
| Tame   |    UL    |     4    |
Run Code Online (Sandbox Code Playgroud)

我想要查询结果

|emp_name|paid_leave|unpaid_leave|
| Tame   |    3     |      4     |    
Run Code Online (Sandbox Code Playgroud)

jar*_*rlh 7

Postgresql 9.4还有FILTER条款聚合的子句:

select emp_name, 
       max(total_lday) FILTER (where leave_type = 'PL') as paid_leave,
       max(total_lday) FILTER (where leave_type = 'UL') as unpaid_leave
from emp_leave
group by emp_name
Run Code Online (Sandbox Code Playgroud)

(ANSI SQL-2016,功能T612,"高级OLAP操作".)