复杂的 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 查询问题 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
范围 COUNT 查询基于 Hibernate 中纪元时间戳的 DATE