首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用peewee将行展平为列

使用peewee将行展平为列
EN

Stack Overflow用户
提问于 2019-07-03 01:04:23
回答 2查看 142关注 0票数 1

数据库后台为postgresqlon gcp。

我在一个表中有一组具有id的行。我正在尝试将其展平为具有多列的行。

代码语言:javascript
复制
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,
)

使用数据

代码语言:javascript
复制
(1,'content 1',parent1)
(2,'content 2',parent1)
(3,'content 3',parent1)
...

试图找出一个查询来将结果展平为列,

代码语言:javascript
复制
select line1, line2,line3
where parent='parent1'

如何容纳抛光这个??谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-05 22:19:25

这不管用。Sql数据库是表格形式的。您不能任意返回X列宽的行。

最好的方法是使用Postgres的array_agg,它将返回一个数组。如果没有,您可以使用group_concat或其他工具来生成一个逗号分隔的列表。

但这闻起来很糟糕,而且可能是一个可怕的想法。

如果有必要,只需在代码中进行折叠/展平即可。

票数 1
EN

Stack Overflow用户

发布于 2019-07-11 21:59:40

如果在PostgreSQL上,你实际上是在寻找一个类似于“数据透视表”的东西。我将查看crosstab函数(请参阅here)。它处理以下格式的内容:

代码语言:javascript
复制
name value
A    1
A    2
B    3
B    4
B    5

并产生

代码语言:javascript
复制
A 1  2  3
B 3  4  5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56857168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档