Sql 新客户订单,但前提是他们在注册后1周购买

Sql 新客户订单,但前提是他们在注册后1周购买,sql,amazon-redshift,aginity,Sql,Amazon Redshift,Aginity,所以我要做的是了解我的新客户在注册一周后购买了什么产品 目前,这是我的查询: 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 ite

所以我要做的是了解我的新客户在注册一周后购买了什么产品

目前,这是我的查询:

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
这个查询给出了三月份从我三月份获得的新客户那里购买的前60项商品。下面是当前输出的样子:

我现在需要的是一个输出,它看起来与上面完全一样,但只显示在注册时创建时间戳日期7天后购买的物品

这一点如下:一些新客户可能会因为某种优惠券或推荐而注册帐户并立即购买。然而,如果我能看到用户在购买前等待了一周的地方购买了哪些产品,那么我就能看到哪些产品促使他们来购买

请让我知道,如果我有什么不清楚的,或者如果你需要更多的信息。
任何帮助都将不胜感激

如果订单日期oms\U order\U date在注册日期create\U timestamp后7天内,则您似乎只希望包含订单

假设订单日期是一个日期,注册是一个时间戳,那么您只能在一整天内工作,而不能一直工作到一小时

因此,您可以使用:


oms\u订单\u日期-创建\u时间戳注册后1周是什么意思?你的意思是在一周内,7天后的某一天,在注册后168小时的某一时刻?样本数据和期望的结果会有所帮助。嗨@GordonLinoff,我已经添加了您要求的信息,并提供了更多的解释。更新后的帖子提供了更多细节。如果我有什么不清楚的地方,请告诉我。任何帮助都将不胜感激!旁注:注意不要混淆时间戳和日期。“2019-03-01”和“2019-03-31”之间的oms订单日期将涵盖整个月,但是t2.create_“2019-03-01”和“2019-03-31”之间的时间戳将不包括31日的订单,因为时间戳将默认为当天开始时的午夜,因为时间尚未提供。谢谢-只是澄清一下:我正在寻找订单日期至少为注册后7天的订单,在注册后的一周内。你提供的这个字符串会执行这个操作吗?我想我可能只需要将操作员从<切换到>,否?建议的语句是正确的。据说订单日期和注册日期之间的时间差小于或等于7天。如果您愿意,您可以将其改写为:WHERE oms\u order\u date不会给我用户在注册后7天内下的订单?我希望它在注册后7天以上。抱歉,我可能不理解其中的微妙之处@约翰·斯泰诺,这还不清楚。您的要求是显示在创建时间戳日期后7天内购买的物品,我将其解释为在创建日期后7天内购买的物品。如果您希望查找从创建日期起至少7天内购买的项目,则选择“是”-您将从或>=中反转比较运算符。