文章 查看内容

如何获取日期字段的最大值,不受筛选的日期范围影响

如何获取日期字段的最大值,不受筛选的日期范围影响

101 0 产品实操 2025-5-15 09:55 发布者: 观小新

如何获取日期字段的最大值,不受筛选的日期范围影响客户场景:想获取日期字段的最大值,这个最大值不论筛选器如何筛选日期的范围,获取到的都是日期字段中的最大日期。例如:日期字段具体值是:2025-01-09,2025-02- ...
如何获取日期字段的最大值,不受筛选的日期范围影响

客户场景:

想获取日期字段的最大值,这个最大值不论筛选器如何筛选日期的范围,获取到的都是日期字段中的最大日期。

例如:

日期字段具体值是:2025-01-09,2025-02-01,2025-01-20,2025-03-08

筛选器筛选日期范围是:2025-01-01~2025-02-20

此时我希望取到的日期最大值还是:2025-03-08

实现步骤:

可以在ETL中实现:

通过子查询计算全局最大日期并与筛选结果结合,确保最大值不受过滤条件影响。

具体步骤如下:

  1. 计算全局最大日期:使用子查询获取整个表的日期最大值。
  2. 交叉连接(CROSS JOIN):将全局最大值附加到筛选后的每一行数据上。
    示例代码:
    SELECT
    t.*,
    g.global_max_date
    FROM
    your_table t
    CROSS JOIN (
    SELECT MAX(date) AS global_max_date
    FROM your_table
    ) g
    WHERE
    t.date BETWEEN '2025-01-01' AND '2025-02-20'

说明:

  • 子查询 g:独立计算整个表的最大日期(global_max_date),不受后续WHERE条件影响。
  • CROSS JOIN:将全局最大值与筛选后的数据结合,确保每行都包含该值。
  • 筛选条件:仅作用于主表t,不会影响子查询中的最大值计算。
    结果示例

其他字段

date

global_max_date

...

2025-01-09

2025-03-08

...

2025-02-01

2025-03-08

...

2025-01-20

2025-03-08

案例展示:


路过

雷人

握手

鲜花

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2025 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去评论 去发文 返回顶部
返回顶部