0

所以我想做的是了解我的新客户在注册后 1 周购买了哪些产品。

目前,这是我的查询:

SELECT
    item_description_1,
    t3.new_division,
    quantity_ordered
FROM 
    mdwh.us_raw.order_report
    INNER JOIN l_act_account t2 ON customer_id = SUBSTRING(t2.channel_uid,4,18)
    FULL OUTER JOIN item_master_zs t3 ON SUBSTRING(upc,1,6) = t3.item_code
WHERE 
    quantity_ordered > 0
    AND customer_id IS NOT NULL
    AND customer_id != ('')
    AND customer_id LIKE 'US%'
    AND oms_order_date IS NOT NULL
    AND extended_amount < 1000 --NO BULK ORDERS
    AND UPPER(line_status) NOT IN ('','RETURN', 'CANCELLED')
    AND (quantity_ordered * unit_price_amount) > 0
    AND oms_order_date BETWEEN '2019-03-01' AND '2019-03-31'
    AND t2.create_timestamp BETWEEN '2019-03-01' AND '2019-03-31'
    AND SUBSTRING(upc,1,6) IN (SELECT item_code FROM item_master_zs WHERE new_division BETWEEN '11' AND '39') --Overall
GROUP BY
    item_description_1,
    t3.new_division,
    quantity_ordered
ORDER BY
    quantity_ordered desc
LIMIT 60

这个查询提供了我在 3 月份从我获得的新客户那里购买的前 60 件商品。现在的输出如下所示:

在此处输入图像描述

我现在需要的只是一个看起来与上面完全相同的输出,但只向我显示在其 create_timestamp 日期(注册时)后 7 天购买的商品。

这样做的要点如下:一些新客户可能会因为某种优惠券或推荐而注册一个帐户并立即进行购买。但是,如果我可以看到用户购买了哪些产品(他们似乎在购买前等待了一周),那么我可以看到哪些产品触发了他们来进行购买。

如果我有任何不清楚的地方,或者您需要更多信息,请告诉我。任何帮助将不胜感激!!

4

1 回答 1

0

您似乎只想包含订单日期 ( oms_order_date) 在注册日期 ( ) 后 7 天内的订单create_timestamp

假设订单日期为 a DATE,注册日期为 a TIMESTAMP,则只能全天工作,不能降到小时。

因此,您将使用:

WHERE oms_order_date - create_timestamp <= INTERVAL '7 days'
于 2020-03-05T03:21:18.480 回答