【发布时间】:2021-08-06 08:58:28
【问题描述】:
目前我一直在寻找如何将 Datediff 分组到历史时期。 假设有 2 个人的活动日期:假设今天 Current_date 是 2021-05-17
ID Active_date Current_date Date_diff
10001 2021-05-14 2021-05-17 3
10002 2021-05-12 2021-05-17 5
10002 2021-05-04 2021-05-17 13
10001 2021-05-01 2021-05-17 16
我要显示的是 Current_date - Active_date = Datediff 的历史记录
ID Active_date Current_date Date_diff
10001 2021-05-14 2021-05-17 3
10002 2021-05-12 2021-05-17 5
10002 2021-05-04 2021-05-17 13
10001 2021-05-01 2021-05-17 16
10001 2021-05-14 2021-05-16 2
10002 2021-05-12 2021-05-16 4
10002 2021-05-04 2021-05-16 12
10001 2021-05-01 2021-05-16 15
....... and so on, until Date_diff is zero
如何在 Bigquery/Oracle 上实现这一点?
【问题讨论】:
-
您是否尝试在 Oracle 中执行此操作?还是在 BigQuery 中?它们是不同的数据库,支持不同的 SQL 方言,具有不同的内置功能。
-
该输出在例如第五步?它是否仍然有 4 行(但对于 ID = 10001,它保持 DATE_DIFF = 0,或者它是否从列表中删除,或者......?此外,CURRENT_DATE 是该表中的列,还是您只是“知道”当前日期是(哪个当前日期是“今天”)?
-
@Littlefoot 它重复直到 min(active_date)。而对于 current_date,我只是使用示例,所以如果您在明天之前阅读此内容,您不会有错误的想法
-
@JustinCave 我同时使用 Oracle 和 Bigquery
-
您是否正在尝试查找在两个数据库中都有效的单个查询?还是您要问两个单独的问题(每个数据库一个)?
标签: oracle date google-bigquery datediff