复杂的 Postgres 查询问题 [关闭]

Posted

技术标签:

【中文标题】复杂的 Postgres 查询问题 [关闭]【英文标题】:Complex Postgres Query Issues [closed] 【发布时间】:2021-03-15 12:11:07 【问题描述】:

致力于在工作中构建酒店计划参与查询。我有一个表 dwp_list,其中包含 hotelcode (fk) 和 programname 作为另一列,还有一个表 all_hotels,它列出了使用 hotelcode 作为主键的所有酒店信息。我想要做的(没有成功)是为每个程序名添加列以创建总参与报告。请查看图片以获得更好的描述。我尝试使用 EXISTS 函数,但子查询返回多条记录。

一共有 18 种不同的程序,所以我想出了一个怎么做,其余的我可以很容易地管理,但是手动操作很痛苦。

【问题讨论】:

您有问题吗?如果是这样,你应该问它。 您必须更清楚地定义什么是“总参与报告”。如果你展示你迄今为止的努力,人们也更愿意提供帮助,最好是以 SQL 语句的形式,并描述你遇到的困难。 感谢大家的帮助,抱歉含糊不清,这是 Stack Overflow 的新手! 【参考方案1】:

对于固定的程序名称列表,可以做条件聚合:

select h.*,
    max(case when l.programname = 'AAA' then 'x' end) as aaa,
    max(case when l.programname = 'BBB' then 'x' end) as bbb,
    max(case when l.programname = 'CCC' then 'x' end) as ccc
from all_hotels h
inner join dwp_list l on l.hotelcode = h.hotelcode
group by h.hotelcode

【讨论】:

这正是我所需要的,非常感谢!

以上是关于复杂的 Postgres 查询问题 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为单个 Django 查询关闭 Postgres 并行查询

Postgres 时间戳

postgres复杂xml解析

范围 COUNT 查询基于 Hibernate 中纪元时间戳的 DATE

使用 Postgres 函数作为 ActiveRecord 模型

在 Postgres 中自我加入