【发布时间】:2011-05-05 11:42:48
【问题描述】:
我有给定日期范围内的下表。
我想编写一个 sql 查询 (PostgreSQL) 来获取给定期间的价格总和,如果它是一个连续的期间..例如:
如果我在第一组中指定 2011-05-02 到 2011-05-09,则应返回 6 行的总和,
但是
如果我在第二组中指定 2011-05-02 到 2011-05-011,则不应返回任何内容。
我的问题是我不知道如何确定日期范围是否是连续的……您能帮忙吗?非常感谢
案例 1:预期总和
price from_date to_date
------ ------------ ------------
1.0 "2011-05-02" "2011-05-02"
2.0 "2011-05-03" "2011-05-03"
3.0 "2011-05-04" "2011-05-05"
4.0 "2011-05-05" "2011-05-06"
5.0 "2011-05-06" "2011-05-07"
4.0 "2011-05-08" "2011-05-09"
案例 2:没有预期结果
price from_date to_date
------ ------------ ------------
1.0 "2011-05-02" "2011-05-02"
2.0 "2011-05-03" "2011-05-03"
3.0 "2011-05-07" "2011-05-09"
4.0 "2011-05-09" "2011-05-011"
我没有重叠的费率日期范围。
【问题讨论】:
-
为什么第一个例子是连续的?价格5.0在2011-05-07结束,下一个两天后开始?
-
如果在第一组中指定
2011-05-02到2011-05-11会怎样(假设(4.0 "2011-05-08" "2011-05-09")之后没有行)?它应该返回与2011-05-02到2011-05-09相同的结果吗?
标签: sql postgresql date-range continuous