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

如何在Vertica中计算买家购买与退货的日期天数差

Vertica计算买家购买与退货的天数差

假设你的表名为return_buyers,用下面的SQL就能算出每个买家购买和退货的天数差:

SELECT
    buyer_id,
    DATEDIFF('day', 
             MAX(CASE WHEN event_name = 'purchase' THEN event_value::DATE END),
             MAX(CASE WHEN event_name = 'return' THEN event_value::DATE END)
            ) AS difference_in_days
FROM return_buyers
GROUP BY buyer_id;

要点说明:

  • 用CASE语句分别提取每个买家的购买、退货日期,MAX聚合用来确保每个买家只取到唯一的日期值(因为每个买家各有一条购买和退货记录)
  • 如果event_value字段本身就是DATE类型,不用加::DATE转换;如果是字符串类型,必须转成DATE才能计算日期差
  • DATEDIFF('day', 起始日期, 结束日期)是Vertica里计算两个日期天数差的函数

另外注意:你给出的示例中天数计算有误,实际2022-08-23到2022-10-23是61天,2022-10-02到2022-11-16是45天,执行上面的SQL会得到正确的天数结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:46:03