postgresql – 如何从hstore数据创建数据透视表?

postgresql – 如何从hstore数据创建数据透视表?,第1张

概述想象一下,我有一辆带有现场数据的桌面车: CARSname | datacar 1 | { "doors" => "5", "engine" => "1.1" }car 2 | { "doors" => "3", "engine" => "1.1", "air_conditioning" => "true" }car 3 | { "doors" => "5", "engine" 想象一下,我有一辆带有现场数据的桌面车:

CARSname  |  datacar 1 |  { "doors" => "5","engine" => "1.1" }car 2 |  { "doors" => "3","engine" => "1.1","air_conditioning" => "true" }car 3 |  { "doors" => "5","engine" => "1.4" }

假设数据键是动态的(可以添加更多),我如何从这些数据创建一个数据透视表,如下所示:

CROsstABname  |  doors  |  engine  |  air_conditioningcar 1 |  5      |  1.1     |car 2 |  3      |  1.1     |  "true"car 3 |  5      |  1.4     |
解决方法 以下是如何获得您要求的结果:

CREATE table hstore_test (ID bigserial primary key,Title text,doors integer,engine text,air_conditioning boolean)INSERT INTO hstore_test (Title,doors,engine,air_conditioning)VALUES ('Car1',2,'1.1',false),('Car2',4,'1.2',true),('Car3',3,'1.3',('Car4',5,'1.4',null);DROP table IF EXISTS hstore_persist;CREATE table hstore_persist ASSELECT hstore(t) car_data FROM hstore_test AS t;SELECT car_data->'Title' "name",car_data->'doors' doors,car_data->'engine' engine,car_data->'air_conditioning' air_conditioningFROM hstore_persist

这将导致表格

name | doors | engine | air_conditioningCar1 |     2 |    1.1 | fCar2 |     4 |    1.2 | tCar3 |     3 |    1.3 | fCar4 |     5 |    1.4 |

但是,它没有任何“交叉”.这只是使用hstore的访问器方法以您在示例中显示的方式显示数据.

总结

以上是内存溢出为你收集整理的postgresql – 如何从hstore数据创建数据透视表?全部内容,希望文章能够帮你解决postgresql – 如何从hstore数据创建数据透视表?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1162566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存