大家好日子!
所以,我老实说搜索所有的网络,但我想我不知道在哪里看。
我的问题是: 我有一张桌子
|some_date |keyword|position|
-------------------------------
|'2015-09-27'|key1 |10 |
|'2015-10-10'|key1 |15 |
|'2015-09-27'|key2 |5 |
|'2015-10-10'|key2 |0 |
我需要看起来像这样:
|keyword |'2015-09-27'|'2015-10-10'|
-----------------------------------
|key1 |10 |15 |
|key2 |5 |0 |
我现在实际上也有表2,并将其用于可视化,但我不喜欢,如果我将以这种方式存储数据,表格看起来很难看。
另外,对于表格2,我无法轻松获取列名称,这也是一件令人伤心的事。
任何想法我怎么能得到这个?也许我需要两张表有一些关系?我完全坚持这个。建筑学的决定也会很好。
我在该表中有超过100个关键字,在表2中,现在有超过600行数据,而在日期列中只有3个uniq日期。我在烧瓶中制作应用程序,所以如果你知道如何在表格2中的html表格中可视化表格1,那将是一个很好的帮助!
任何帮助将不胜感激!
答案 0 :(得分:1)
您可以使用tablefunc
扩展名中的crosstab()
功能。
create extension if not exists tablefunc;
select * from crosstab ($ct$
select keyword, some_date, position
from some_table
order by 1, 2
$ct$)
ct (keyword text, "2015-09-27" int, "2015-10-10" int);
keyword | 2015-09-27 | 2015-10-10
---------+------------+------------
key1 | 10 | 15
key2 | 5 | 0
(2 rows)