gpt4 book ai didi

SQL:如果前一个日期超过 1 天前,则获取一系列日期的最小日期分区

转载 作者:行者123 更新时间:2023-12-04 02:01:50 24 4
gpt4 key购买 nike

我有一个每周进行的数据导入,当它开始时,会持续几天。结果,在日期列中,我为每个数据导入设置了多个日期。我想获取每次导入的最短日期。这在 SQL 中可能吗?具体来说,在 Google BigQuery 中。示例:

date    desired_output
4/25/17 4/25/17
4/26/17 4/25/17
4/27/17 4/25/17
5/2/17 5/2/17
5/3/17 5/2/17
5/10/17 5/10/17
5/16/17 5/16/17
5/17/17 5/16/17
5/23/17 5/23/17
5/24/17 5/23/17
5/30/17 5/30/17
5/31/17 5/30/17
6/5/17 6/5/17
6/6/17 6/6/17

最佳答案

您可以识别按顺序排列的日期组——这是一个间隔和孤岛问题。也许这会做你想做的事:

select date,
min(date) over (partition by date_add(date, interval - seqnum_d day)) as desired_output
from (select t.*,
dense_rank() over (order by date) as seqnum_d
from t
) t

日期算法通过减去一个序列来识别日期序列——瞧!结果是一个常数。

注意:这假设日期序列有间隔。

此外,我使用了 dense_rank(),因此它可以在一个日期处理多个条目。

关于SQL:如果前一个日期超过 1 天前,则获取一系列日期的最小日期分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com