以下是我的查询的输出:
key ;value
"2BxtRdkRvwc-2hPjF8LBmHD-finapril" ;4
"3QXORSfsIY0-2sDizCyvY6m-finapril" ;12
"4QXORSfsIY0-2sDizCyvY6m-curr" ;12
"5QXORSfsIY0-29Xcom4SHVh-finapril" ;12
我想要的只是将行放入列中,以便只有一行保留密钥作为列名。
我已经看到交叉表的例子适用于很复杂的用例,但我想知道在我的特定情况下是否有更简单的方法可以实现这一点?
任何帮助表示赞赏 谢谢
Postgres版本:9.5.10
无法执行导致未知数量和列名称的查询。获得类似效果的最简单方法是生成一个json对象,客户端应用程序可以将其轻松解释为数据透视表,例如:
with the_data(key, value) as (
values
('2BxtRdkRvwc-2hPjF8LBmHD-finapril', 4),
('3QXORSfsIY0-2sDizCyvY6m-finapril', 12),
('4QXORSfsIY0-2sDizCyvY6m-curr', 12),
('5QXORSfsIY0-29Xcom4SHVh-finapril', 12)
)
select jsonb_object_agg(key, value)
from the_data;
该查询返回此json对象:
{
"4QXORSfsIY0-2sDizCyvY6m-curr": 12,
"2BxtRdkRvwc-2hPjF8LBmHD-finapril": 4,
"3QXORSfsIY0-2sDizCyvY6m-finapril": 12,
"5QXORSfsIY0-29Xcom4SHVh-finapril": 12
}