您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL查询,用于统计每个客户的订单数和总金额

SQL查询,用于统计每个客户的订单数和总金额

您将COUNT(DISTINCT ...)在其他sql引擎中使用:

SELECT CID, 
       Count(DISTINCT O.OrderID) AS TotalOrders, 
       Sum(OI.Quantity*OI.SalePrice) AS TotalDollarAmount 
FROM [Order] O
INNER JOIN [OrderItem] OI
  ON O.OrderID = OI.OrderID
GROUP BY CID 
Order BY Count(DISTINCT O.OrderID) DESC

不幸的是,哪个Access不支持。相反,您可以先获取订单金额,然后在确定订单数量之前将它们加入:

SELECT CID,
       COUNT(Orders.OrderID) AS TotalOrders,
       SUM(OrderAmounts.DollarAmount) AS TotalDollarAmount
FROM [Orders]
INNER JOIN (SELECT OrderID, Sum(Quantity*SalePrice) AS DollarAmount 
      FROM OrderItems GROUP BY OrderID) AS OrderAmounts
  ON Orders.OrderID = OrderAmounts.OrderID
GROUP BY CID
ORDER BY Count(Orders.OrderID) DESC

如果您需要包括订单中没有商品的客户(非正常但可能),请更改INNER JOINLEFT OUTER JOIN

SQLServer 2022/1/1 18:25:36 有399人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶