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:选择多行并使其成为一行的主要内容,如果未能解决你的问题,请参考以下文章