PostgreSQl:选择多行并使其成为一行

Posted

技术标签:

【中文标题】PostgreSQl:选择多行并使其成为一行【英文标题】:PostgreSQl: select multiple rows and make it in one row 【发布时间】:2015-01-28 09:41:51 【问题描述】:

我正在使用 PostgreSQl,这是我在数据库中的表:

我怎样才能编写一个查询来给我这个结果:

【问题讨论】:

这是一个立方体,使用方法查看手册:postgresql.org/docs/current/interactive/cube.html 【参考方案1】:

或者你可以写查询像

select id_salarie, 
max(case when date_pointage = '2015-01-01' then round(nb_heures::numeric,2) else null end) as "2015-01-01",
max(case when date_pointage = '2015-01-02' then round(nb_heures::numeric,2) else null end)as "2015-01-02", 
max(case when date_pointage = '2015-01-03' then round(nb_heures::numeric,2) else null end) as "2015-01-03"
from my_table where id_salarie = 1
group by id_salarie;

查询看起来庞大而糟糕,但适用于多维数据集

【讨论】:

感谢您的回答,但这无济于事,因为“date_pointage”字段是未知的。在这个例子中,我选择了 7 天,但实际上它是未知的,可能只有 4 天或 8 天,这就是问题所在。 可以选择date_pointage进入游标,然后生成sql-query字符串并执行

以上是关于PostgreSQl:选择多行并使其成为一行的主要内容,如果未能解决你的问题,请参考以下文章

将空白选项添加到选择顶部并使其成为 IE 中的选定选项

如何重置为提交并使其成为大师?

删除等宽约束并使其成为全宽

sh 创建用户并使其成为管理员

Razor 如何创建一个 CheckBox 并使其成为 READONLY?

在 Swift 中删除 Unwrapped 并使其成为可选? [复制]