【发布时间】:2020-01-06 22:44:09
【问题描述】:
有一个具有以下属性的表: 订单:order_id、order_item_id、customer_id、日期、product_id、收入
我需要回答以下问题: 我们在 2018 年获得了多少新客户。(如果客户首次购买,那么我们称他们为新客户(仅针对该订单)?
我写了以下查询:
Select Count(customer_id) as New_Customers From Order
Where date < 2019-01-01 AND NOT date < 2018-01-01
Group by customer_id
分配这个的人看了看,告诉我需要为新客户创建一个过滤器。我认为“Where”子句完成了这一点,但我想没有。
任何帮助将不胜感激。
【问题讨论】:
-
2 您的查询有问题 1)您计算的是订单而不是客户(计数(不同会更好)2)您没有过滤掉订单超出您的日期范围的客户,我不鼓励在这种情况下使用 NOT,
-
我可以想象为什么 order_id 可能会出现在 order_items 表中,但我无法想象为什么 order_item_id 会出现在 orders 表中
-
找出你正在使用的RDBMS,然后查看meta.stackoverflow.com/questions/333952/…