数据库后台为postgresqlon gcp。
我在一个表中有一组具有id的行。我正在尝试将其展平为具有多列的行。
CREATE TABLE public.lines
(
line_no int NOT NULL,
line_content character varying(60) COLLATE pg_catalog."default" NOT NULL,
parent_id integer NOT NULL,
)使用数据
(1,'content 1',parent1)
(2,'content 2',parent1)
(3,'content 3',parent1)
...试图找出一个查询来将结果展平为列,
select line1, line2,line3
where parent='parent1'如何容纳抛光这个??谢谢!
发布于 2019-07-05 22:19:25
这不管用。Sql数据库是表格形式的。您不能任意返回X列宽的行。
最好的方法是使用Postgres的array_agg,它将返回一个数组。如果没有,您可以使用group_concat或其他工具来生成一个逗号分隔的列表。
但这闻起来很糟糕,而且可能是一个可怕的想法。
如果有必要,只需在代码中进行折叠/展平即可。
发布于 2019-07-11 21:59:40
如果在PostgreSQL上,你实际上是在寻找一个类似于“数据透视表”的东西。我将查看crosstab函数(请参阅here)。它处理以下格式的内容:
name value
A 1
A 2
B 3
B 4
B 5并产生
A 1 2 3
B 3 4 5https://stackoverflow.com/questions/56857168
复制相似问题