如何在postgreSQL中获取一行中的值?
How to get value in one row in postgreSQL?
我有数据库 table name emp_leave in postgreSQL9.3 like
|emp_name|department|ann_leave|med_leave|cas_leave|org_ann_lv|org_med_lv|org_cas_lv|
| Tame | IT | | | 3 | | | 25 |
| Tame | IT | 4 | | | 20 | | |
| Tame | IT | | 3 | | | 30 | |
I want the query result like
|emp_name|department|ann_leave|med_leave|cas_leave|org_ann_lv|org_med_lv|org_cas_lv|
| Tame | IT | 4 | 3 | 3 | 20 | 30 | 25 |
您想要聚合:
select el.emp_name, el.department,
max(el.ann_leave),
. . . ,
max(el.org_cas_lv)
from emp_leave el
group by el.emp_name, el.department;
这假设空白 space 为 null
。
消除空值并转换为单行
select
emp_name,
department,
min(ann_leave),
min(med_leave),
min(cas_leave),
min(org_ann_lv),
min(org_med_lv),
min(org_cas_lv)
from emp_leave
group by
emp_name,
department
我有数据库 table name emp_leave in postgreSQL9.3 like
|emp_name|department|ann_leave|med_leave|cas_leave|org_ann_lv|org_med_lv|org_cas_lv|
| Tame | IT | | | 3 | | | 25 |
| Tame | IT | 4 | | | 20 | | |
| Tame | IT | | 3 | | | 30 | |
I want the query result like
|emp_name|department|ann_leave|med_leave|cas_leave|org_ann_lv|org_med_lv|org_cas_lv|
| Tame | IT | 4 | 3 | 3 | 20 | 30 | 25 |
您想要聚合:
select el.emp_name, el.department,
max(el.ann_leave),
. . . ,
max(el.org_cas_lv)
from emp_leave el
group by el.emp_name, el.department;
这假设空白 space 为 null
。
消除空值并转换为单行
select
emp_name,
department,
min(ann_leave),
min(med_leave),
min(cas_leave),
min(org_ann_lv),
min(org_med_lv),
min(org_cas_lv)
from emp_leave
group by
emp_name,
department