Я хочу отобразить количество покупок, совершенных каждым клиентом.Если они совершили 0 покупок, я хочу отобразить 0.
Желаемый результат:
-------------------------------------
| customer_name | number_of_purchases |
-------------------------------------
| Marg | 0 |
| Ben | 1 |
| Phil | 4 |
| Steve | 0 |
-------------------------------------
Клиент Таблица:
-----------------------------
| customer_id | customer_name |
-----------------------------
| 1 | Marg |
| 2 | Ben |
| 3 | Phil |
| 4 | Steve |
-----------------------------
Закупки Таблица:
--------------------------------------------------
| purchase_id | customer_id | purchase_description |
--------------------------------------------------
| 1 | 2 | 500 Reams |
| 2 | 3 | 6 Toners |
| 3 | 3 | 20 Staplers |
| 4 | 3 | 2 Copiers |
| 5 | 3 | 9 Name Plaques |
--------------------------------------------------
Мой текущий запрос выглядит следующим образом:
SELECT customer_name, COUNT(*) AS number_of_purchaes
FROM customer
LEFT JOIN purchases ON customer.customer_id = purchases.customer_id
GROUP BY customer.customer_id
Однако, поскольку это LEFT JOIN
, запрос приводит к строкам для клиентов без покупок, что делает их частью COUNT(*)
.Другими словами, клиенты, совершившие 0 покупок, отображаются как совершившие 1 покупку, например:
СЛЕДУЮЩИЙ РЕЙТИНГ Вывод:
-------------------------------------
| customer_name | number_of_purchases |
-------------------------------------
| Marg | 1 |
| Ben | 1 |
| Phil | 4 |
| Steve | 1 |
-------------------------------------
У меня естьтакже пробовал INNER JOIN
, но это приводит к тому, что клиенты с 0 покупками вообще не отображаются:
INNER JOIN Выход:
-------------------------------------
| customer_name | number_of_purchases |
-------------------------------------
| Ben | 1 |
| Phil | 4 |
-------------------------------------
Как мне достичь Желаемый вывод , где отображаются клиенты с 0 покупками?