我有两张桌子。
表1:
Label Date CT A 2014-01-01 19 A 2014-02-01 10 A 2014-03-01 19 A 2014-04-01 18 B 2014-01-01 20 B 2014-02-01 16 B 2014-03-01 14 B 2014-04-01 16 C 2014-01-01 13 C 2014-02-01 12 C 2014-03-01 19 C 2014-04-01 14
表2:
Label Date CT D 2014-01-01 19 D 2014-02-01 10 D 2014-03-01 19 D 2014-04-01 18 E 2014-01-01 20 E 2014-02-01 16 E 2014-03-01 14 E 2014-04-01 16 F 2014-01-01 13 F 2014-02-01 12 F 2014-03-01 19 F 2014-04-01 14
期望输出:
Label Jan'14 Feb'14 Mar'14 Apr'14 Total A 19 10 19 18 66 B 20 16 14 16 66 C 13 12 19 14 58 D 19 10 19 18 66 E 20 16 14 16 66 F 13 12 19 14 58
我是PostgreSQL的新手。
我想从表格中获取Label
列的唯一值。
并将计数总和计算到各自的标签。
我可以使用UNION ALL
以简单的方法将这两个表组合在一起。
但那并没有给我所需的输出或视图像枢轴。
我确实谷歌这个,但没有什么可以帮助我。
在SO中遇到this。而且我还在继续尝试。
但实际上我并不知道是否可以这样做。
有人可以帮助我获得所需的输出。
提前致谢!!
答案 0 :(得分:0)
尝试这样
select *,("Jan ''14" + "Feb ''14" + "Mar ''14" +"Apr ''14") as total
from crosstab($$
select id,to_char(da,'Mon ''yy') as tt,no from t2
union all
select id,to_char(da,'Mon ''yy') as tt,no from "T1"
$$,$$values ('Jan ''14'), ('Feb ''14'),('Mar ''14'),('Apr ''14') $$) as at
(id text, "Jan ''14" integer,"Feb ''14" integer,"Mar ''14" integer,
"Apr ''14" integer) order by id