gpt4 book ai didi

sql - 如何展平 PostgreSQL 结果

转载 作者:行者123 更新时间:2023-11-29 11:52:59 25 4
gpt4 key购买 nike

我有实验、特征和特征值。特征在不同的实验中具有值(value)。所以我有类似的东西:

Experiments:
experiment_id, experiment_name

Features:
feature_id, feature_name

Feature_values:
experiment_id, feature_id, value

比方说,我有三个实验(exp1、exp2、exp3)和三个特征(feat1、feat2、feat3)。我想要一个看起来像这样的 SQL 结果:

feature_name | exp1 | exp2 | exp3
-------------+------+------+-----
feat1 | 100 | 150 | 110
feat2 | 200 | 250 | 210
feat3 | 300 | 350 | 310

我该怎么做?此外,一个特征可能在一次实验中没有值(value)。

feature_name | exp1 | exp2 | exp3
-------------+------+------+-----
feat1 | 100 | 150 | 110
feat2 | 200 | | 210
feat3 | | 350 | 310

SQL-Query 应该具有良好的性能。将来 feature_values 表中可能会有数千万个条目。还是有更好的方法来处理数据?

最佳答案

这是一个常见的请求。它称为数据透视表或交叉表查询。 PostgreSQL 没有任何很好的内置语法,但您可以使用 the crosstab function from the tablefunc module to do what you want .

有关 [postgresql] [pivot][postgresql] [crosstab] 的更多信息,请搜索 Stack Overflow。

一些关系数据库系统提供了一种使用内置查询执行此操作的好方法,但 PostgreSQL 还没有。

关于sql - 如何展平 PostgreSQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18463634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com