データベースに次のスキーマを持つテーブルがあります。
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、顧客ごとの注文数、顧客ごとの平均支出の 3 つの値を返します。現在のコードでは、顧客ごとの平均支出は空白 (null) として返されます。顧客が 2013 年 3 月に何も注文しなかった場合 (つまり、3 月の顧客ごとの注文数がゼロの場合)、IFNULL 関数を使用して顧客ごとの平均支出を 0.00 に設定するのに問題があります。どんな助けでも大歓迎です!