我的数据库中有以下架构的表:
customers (customerID: integer, fName: string, lName: string)
items (itemID: integer, description: string, price: integer)
orders (orderID: integer, itemID: integer, aID: integer, customerID:integer, date: date)
和以下代码:
SELECT c.customerID, COUNT(DISTINCT o.orderID) AS number_of_orders,
ROUND(SUM(i.price) / COUNT(DISTINCT o.orderID),2) AS average
FROM customers c
LEFT JOIN orders o
ON o.customerID = c.customerID
AND o.date >= '2013-03-01'
AND o.date < '2013-04-01'
LEFT JOIN items i
ON o.itemID = i.itemID
GROUP BY c.customerID
它返回三个值:客户 ID、每位客户的订单数和每位客户的平均支出。使用现在的代码,每位客户的平均支出返回为空白 (null)。如果客户在 2013 年 3 月没有订购任何东西(即,如果 3 月每位客户的订单数量为零),我无法使用 IFNULL 函数将每位客户的平均支出设置为 0.00。任何帮助将不胜感激!