首页 > 解决方案 > PostgreSQL中最大值的多项选择

问题描述

我有一张这样的桌子:

 ID  cbk           due_16_30        due_31_60 
  1  2018-06-19    5                200
  2  2018-06-19    100              -5
  1  2018-06-19    -2               2
  2  2018-06-18    20               Null
  2  2018-06-18    50               22
  1  2018-06-18    30               150

我想从最新日期中选择最大值due_16_30和最大值due_31_60,其中日期介于一些start dateend date. 我怎样才能做到这一点PostgreSQL

更新1: 感谢您的回答!我发现了一个更复杂的问题 - 如果我需要做同样的事情,但使用不同的 ID,该怎么办?现在我所看到的 - 它需要两者之间的最新日期,如果该日期的特定 ID 没有行 - 该 ID 被遗漏。

标签: sqlpostgresql

解决方案


我希望这有帮助

select cbk, max(due_16_30), max(due_31_60)
from [table]
where cbk = (select max(cbk) 
            from [table] 
            where cbk >= start_date and 
                  cbk <= end_date
            ) 
group by cbk;

推荐阅读