【发布时间】:2015-08-10 00:24:28
【问题描述】:
Postgresql - 数据格式如下
我目前正在使用以下 SQL 来获取为属性设置的所有预订日期
但是,在一天内,当用户多次更改某个属性的预订日期时,会创建多个条目,这会夸大汇总结果。
我可以将if-else 逻辑应用于重叠的预订日期(以红色和黄色突出显示)以仅选择最大(updated_at)(以黄色突出显示)的预订日期吗?
例如,红色和黄色行的预订日期重叠。如果我应用以下 SQL,那么我的总和将不正确。所以,我只需要考虑 update_at 为 max 时的预订日期。
WITH X AS (SELECT distinct booking_end_date, booking_start_date, P_id
FROM booking)
SELECT sum(X.booking_end_date-X.booking_start_date) as Available, X.P_id
from X
group by X.P_id
【问题讨论】:
标签: sql postgresql greatest-n-per-group