create table t(day date,equipment varchar(20),output integer);
insert into t values('2010-04-01','DAT501',100);
insert into t values('2010-04-01','DAT502',120);
insert into t values('2010-04-01','DAT503',130);
insert into t values('2010-04-02','DAT501',110);
insert into t values('2010-04-02','DAT502',105);
insert into t values('2010-04-03','DAT503',125);
insert into t values('2010-04-04','DAT501',100);
insert into t values('2010-04-04','DAT503',200);
--想得到如下結果
day | dat501 | dat502 | dat503
----------------+-----------+----------+--------
2010-04-01 | 100 | 120 | 130
2010-04-02 | 110 | 105 |
2010-04-03 | | | 125
2010-04-04 | 100 | | 200
uj5u.com熱心網友回復:
這個應該只能通過關聯的方式解決:select t.day , t1.equipment DAT501 ,t2.equipment DAT502 ,t3.equipment DAT503
from (select distinct day from t ) t
left join t t1
on t.day =t1.day
and t1. equipment = 'DAT501'
left join t t2
on t.day =t2.day
and t2. equipment = 'DAT502'
left join t t3
on t.day =t3.day
and t3. equipment = 'DAT503'
order by t1.day
uj5u.com熱心網友回復:
http://blog.csdn.net/zeeeitch/article/details/6086257uj5u.com熱心網友回復:
http://blog.csdn.net/post_yuan/article/details/52464004轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/99608.html
標籤:PostgreSQL
下一篇:MySQL創建為什么錯誤
