如何在SQL中按指定状态筛选行并统计周度去重用户数?
按周统计订单去重用户数的LINQ实现问题
需求说明
从orders表中,按周统计符合指定状态的订单的去重用户数:
- 目标状态:枚举值1|2|3|4|5,对应
OrderStatus.Complete、Processing、PartiallyShipped、Cancelled、Fraudulent、SuspectedFraud - 同一用户可能有多笔订单,需按
OrderDate范围约束,按周分组统计去重用户数
已尝试的LINQ代码
db.Orders.GetAll().Where(q => (q.Status == OrderStatus.Complete || q.Status == OrderStatus.Processing || q.Status == OrderStatus.PartiallyShipped || q.Status == OrderStatus.Cancelled || q.Status == OrderStatus.Fraudulent || q.Status == OrderStatus.SuspectedFraud) && (startDate == null || DbFunctions.TruncateTime(q.OrderDate) >= DbFunctions.TruncateTime(startDate)) && (endDate == null || DbFunctions.TruncateTime(q.OrderDate) <= DbFunctions.TruncateTime(endDate)) ).Distinct().Count();
疑问
不知道怎么通过Group By实现按周的准确分组统计。
内容的提问来源于stack exchange,提问作者shubham maini
相关产品推荐
相关产品推荐

