postgresql - 如何旋转我的表格以显示两个单独的列
问题描述
(我的数据库向我显示了每个人以及他们有多少支出以及他们在哪个阶段拥有它 - 仅供参考,并非每个人都有所有 4 个支出)
我创建了一个表,其中包含不同阶段的平均值,称为 payout1、payout 2、payout 3 和 payout 4。
每个阶段都有一个支付金额,并且有多个人获得不同的支付金额。
我现在有一个问题来旋转这个表,以便我可以有 2 列与支付阶段和平均值。我需要这个,以便可以将其用作元数据库中的条形图可视化。
我已经到了可以轻松显示平均值的阶段(见下文)
select
round(avg(payout_1)::numeric,2) as avg_payout_1,
round(avg(payout_2)::numeric,2) as avg_payout_2,
round(avg(payout_3)::numeric,2) as avg_payout_3,
round(avg(payout_4)::numeric,2) as avg_payout_4
from payout_table
结果是我看到了每次支付的平均值(耶)但是现在我想要 2 列,1 表示支付类型,2 表示支付的平均金额
这是我的结果:
|------------------|---------------|---------------|---------------|
| avg_payout_1 | avg_payout_2 | avg_payout_3 | avg_payout_4 |
|------------------|---------------|---------------|---------------|
| 34.32 | 145.11 | 78.65 | 96.76 |
|------------------|---------------|---------------|---------------|
我希望它显示:
|------------------|---------------|
| payout | avg |
|------------------|---------------|
| payout_1 | 34.32 |
|------------------|---------------|
| payout_2 | 145.11 |
|------------------|---------------|
ETC
解决方案
如果您只有这 4 列,则可以将这些值组成一个数组,然后将它们拆分为行,例如:
select
unnest(array [a1,a2,a3,a4]),
unnest(array ['avg_payout_1','avg_payout_2','avg_payout_3','avg_payout_4'])
from(
select
round(avg(payout_1)::numeric,2) a1,
round(avg(payout_2)::numeric,2) a2,
round(avg(payout_3)::numeric,2) a3,
round(avg(payout_4)::numeric,2) a4
from payout_table) a
这不是最好看的解决方案,但它确实有效。
推荐阅读
- swift - 从 NSObject 继承但在 Swift 中标有 @objc 的两个类之间有区别吗?
- hyperledger-fabric - 如何在超级账本作曲家中管理我的资产?
- xml - XSLT 输出方法“xml”未将 html 标记显示为 html 输出
- python - python中函数的动态输入数
- python - 运行文件夹中的所有 Python 脚本 - 从 Python
- angular - 带有 Material Snackbar 的 Angular StaticInjectorError
- react-native - textAlign justify 属性在本机反应中不起作用
- python - 使用 for 循环查找索引
- json - 有没有办法在 Java 中区分两个 Avro GenericRecords 以仅获取更改的字段和值?
- python - 两部分发布请求以获取 CSRF 令牌,然后发出另一个请求