You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Presto SQL中为每个客户添加首次审批日期列?

需求:为每个客户添加首次审批日期列(Presto SQL实现)

基础表结构与数据

datecustomer_idapproved
01/01/23afalse
01/01/23bfalse
02/01/23atrue
02/01/23bfalse
03/01/23atrue
03/01/23btrue

期望结果

需要新增approved_date列,展示每个customer_id的首次审批日期,最终结果如下:

datecustomer_idapprovedapproved_date
01/01/23afalse02/01/23
01/01/23bfalse03/01/23
02/01/23atrue02/01/23
02/01/23bfalse03/01/23
03/01/23atrue02/01/23
03/01/23btrue03/01/23

Presto SQL实现方案

利用窗口函数结合FILTER子句,筛选每个客户审批通过的记录并取最早日期,将该日期填充到对应客户的所有行中:

SELECT 
    date,
    customer_id,
    approved,
    MIN(date) FILTER (WHERE approved = true) OVER (PARTITION BY customer_id) AS approved_date
FROM 
    your_table_name;

逻辑说明

  • PARTITION BY customer_id:按客户ID分组处理数据
  • FILTER (WHERE approved = true):仅保留当前客户下审批通过的记录
  • MIN(date):从筛选后的记录中取最早日期,即该客户的首次审批日期
  • 窗口函数OVER:将首次审批日期同步到该客户的每一行数据中

内容的提问来源于stack exchange,提问作者bobbytici

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:05:27