【发布时间】:2020-04-23 23:17:57
【问题描述】:
我正在寻找一个不能列出客户的查询
我不精通此类代码,我尝试构建子查询和 cte,但我无法构建我的逻辑。我尝试了以下但无法取得进展。
; with cte as(
SELECT customer_id,DATEPART(MONTH,Customer) as month,count(units) as no_of_order
from dwqc.dbo.orders
group by customer_id,DATEPART(MONTH,Customer))
select * from cte
有人可以帮我解决这个问题吗?谢谢!
【问题讨论】:
-
把你的问题分解成小块。第 1 步 - 定义(用文字)“每个月”的实际含义。您的样本跨越去年的 3 个月。很简单,除非您限制时间范围,否则没有客户每个月都有订单。一旦有了时间范围(开始日期、结束日期),您就知道总月数了。
-
您统计的是每个月下订单的人数。所以你需要计算不同的月份。所以你应该在末尾添加
HAVING COUNT(DISTINCT DATEPART(MONTH,Customer))=3
标签: sql-server