postgre数据库如何实现行转列

[复制链接]
查看11 | 回复4 | 2021-1-27 06:42:17 | 显示全部楼层 |阅读模式
createtablet(daydate,equipmentvarchar(20),outputinteger);
insertintotvalues('2010-04-01','DAT501',100);
insertintotvalues('2010-04-01','DAT502',120);
insertintotvalues('2010-04-01','DAT503',130);
insertintotvalues('2010-04-02','DAT501',110);
insertintotvalues('2010-04-02','DAT502',105);
insertintotvalues('2010-04-03','DAT503',125);
insertintotvalues('2010-04-04','DAT501',100);
insertintotvalues('2010-04-04','DAT503',200);
--想得到如下结果
day|dat501|dat502|dat503
----------------+-----------+----------+--------
2010-04-01|100|120|130
2010-04-02|110|105|
2010-04-03
回复

使用道具 举报

千问 | 2021-1-27 06:42:17 | 显示全部楼层
125
2010-04-04|100||200
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:42:17 | 显示全部楼层
这个应该只能通过关联的方式解决:
selectt.day,t1.equipmentDAT501,t2.equipmentDAT502,t3.equipmentDAT503
from(selectdistinctdayfromt)t
leftjointt1
ont.day=t1.day
andt1.equipment='DAT501'
leftjointt2
ont.day=t2.day
andt2.equipment='DAT502'
leftjointt3
ont.day=t3.day
andt3.equipment='DAT503'
orderbyt1.day
回复

使用道具 举报

千问 | 2021-1-27 06:42:17 | 显示全部楼层
http://blog.csdn.net/zeeeitch/article/details/6086257
回复

使用道具 举报

千问 | 2021-1-27 06:42:17 | 显示全部楼层
http://blog.csdn.net/post_yuan/article/details/52464004
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行