簡體   English   中英

如何在postgreSQL中的一行中獲取多個值?

[英]How to get multiple value in one row in postgreSQL?

我在postgreSQL9.4中有數據庫表名emp_leave

|emp_name|leave_type|total_lday|
| Tame   |    PL    |     3    |
| Tame   |    UL    |     4    |

我想要查詢結果

|emp_name|paid_leave|unpaid_leave|
| Tame   |    3     |      4     |    

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

(ANSI SQL-2016,功能T612,“高級OLAP操作”。)

你可以嘗試下面 - 使用條件聚合

select emp_name, 
  max(case when leave_type='PL' then total_lday end) as paid_leave,
  max(case when leave_type='UL' then total_lday end) as unpaid_leave
from emp_leave
group by emp_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM