gpt4 book ai didi

sql - Postgresql 枢轴?交叉表?

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

我在 postgres 中有一个表(这是查询的结果),它有一组行(复杂的数据求和的结果),如下所示:(列名是每一天的名称, 每列的值都是 double 。)

周日周一周二周三周四周五
1.24 1.11 4.51 3.21 2.21 1.01

我需要从一行中选择数据,这样结果如下所示:

日数额
太阳 1.24
周一 1.11
周二 4.51
周三 3.21
周四 2.21
周五 1.01

我刚开始时遇到困难,因为我确实需要将列名称更改为值并转换结果。我尝试使用交叉表进行试验,但我不完全确定这是我需要的。非常感谢任何可以让我朝着正确方向前进的意见或建议。

最佳答案

修改@Jack Douglas 的第一个答案:

SELECT unnest(array['sun', 'mon', 'tue', 'wed', 'thu', 'fri']) AS day,
unnest(array[sun, mon, tue, wed, thu, fri]) AS amount
FROM t;

根据 9.0 查询规划器,成本略低:

t 上的序列扫描(成本=0.00..11.62 行=360 宽度=192)

对比

z 上的子查询扫描(成本=0.00..12.16 行=360 宽度=68)
-> t 上的序列扫描(成本=0.00..11.26 行=360 宽度=192)

关于sql - Postgresql 枢轴?交叉表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329041/

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