首页 > 解决方案 > 如何在 POSTGRESQL 的新行中重复列值

问题描述

我有一个表,列如下

A B C D E F G H

其中 AB 是名称,CDEFGH 是度量值

我想在 postgresql 中使用汇总函数获得以下信息。

A B C
A B D
A B E
A B F
A B G
A B H

表本身很复杂,我必须让前七列出现在每一行中,然后其余 6 列一次只能获得一个值,重复 6 次 + 在每一行中,七列值应该使用汇总函数与它们一起出现上面给出的例子。

感谢您的帮助。

标签: sqlpostgresqlrollup

解决方案


您可以使用grouping sets

select a, b, coalesce(c, d, e, f, g, h)
from t
group by grouping sets ( (a, b, c),
                         (a, b, d),
                         (a, b, e),
                         (a, b, f),
                         (a, b, g),
                         (a, b, h)
                       );

推荐阅读