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数据创建数据透视表?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)