参考日期前后的 sql 持续时间

Posted

技术标签:

【中文标题】参考日期前后的 sql 持续时间【英文标题】:sql duration around the reference date 【发布时间】:2017-05-31 09:49:28 【问题描述】:

customer 表中有一个客户池,其中包含一些活动,每个客户都执行了特定的活动,并且已将其标记为事件发生,并且已选择日期作为参考日期。

现在的任务是查找参考日期前后的客户记录。例如。选择每个客户在事件发生前 10 天、事件发生后 20 天或前 5 天和后 5 天的活动。

表格如下:

Customer ID| activities | date
 1          | a1         | date1
 1          | a2         | date1
 1          | a3         | date2
 1          | a1         | date2
 .
 1          | a-sp       | date22 ---> a-sp is an event occurred and the date is Ref. Date
 .
 1          | a1000      | date30

对许多其他客户同样明智

社区有什么建议吗?

【问题讨论】:

提及数据库/版本、示例数据、您的预期输出以及到目前为止您是否尝试过任何事情。 我正在使用 SAP/HANA,抱歉我没有示例数据。 【参考方案1】:

你可以这样做:

select t.*, e.event_date
from t join
     (select t.customerid, t.date as event_date
      from t
      where t.activity = 'a-sp'
     ) e
     on t.date >= add_days(e.event_date, -5) and
        t.date <= add_days(e.evant_date, 5);

【讨论】:

谢谢戈登!它有帮助!

以上是关于参考日期前后的 sql 持续时间的主要内容,如果未能解决你的问题,请参考以下文章

SQL 每 7 天插入日期,持续 10 年

Java JDBC:日期持续两天

用于比较字符串(HH24MI)与日期的 Sql 查询帮助

Mysql中使用SQL计算两个日期时间差值

两个日期之间的持续时间Java [重复]

SQL 过程语句被忽略