我有下面的表,这实际上是多个连接表的结果的最小示例。我现在想要按“person_ID”分组,并将所有“value”条目放在一行中,在feature_ID之后排序。
person_ID | feature_ID | value
123 | 1 | 1.1
123 | 2 | 1.2
123 | 3 | 1.3
123 | 4 | 1.2
124 | 1 | 1.0
124 | 2 | 1.1
...结果应该是:
123 | 1.1 | 1.2 | 1.3 | 1.2
124 | 1.0 | 1.1 | ...应该有一个优雅的SQL查询解决方案,我既想不出来,也找不到。
对于快速重建,这将是示例数据:
create table example(person_ID integer, feature_ID integer, value float);
insert into example(person_ID, feature_ID, value) values
(123,1,1.1),
(123,2,1.2),
(123,3,1.3),
(123,4,1.2),
(124,1,1.0),
(124,2,1.1),
(124,3,1.2),
(124,4,1.4); 编辑:在现实生活应用中,每个人都有6374个条目。
我使用的是SQL8.3.23数据库,但我认为使用标准PostgreSQL应该可以解决这个问题。
发布于 2014-03-07 18:13:44
数据库并不擅长转置。现在有一个模糊的列增长问题,我的意思是数据库如何处理可变数量的列?这不是电子表格。
这种排序转置通常是在报表编写器中完成的,而不是在SQL中。
..。或者在程序中,比如php中。
发布于 2014-03-07 18:20:47
https://stackoverflow.com/questions/22246612
复制相似问题