Этот запрос:
SELECT c.customername, COUNT(o.OrderID)
FROM Sales.Customers c LEFT JOIN
Sales.Orders o
ON c.CustomerID = o.OrderID
GROUP BY c.CustomerName;
Вероятно, возвращает всех клиентов с бессмысленными подсчетами - вероятно, 0
, за исключением OrderID
с, которые соответствуют CustomerID
с.
Вывероятно, намеревается:
SELECT c.customername, COUNT(o.OrderID)
FROM Sales.Customers c LEFT JOIN
Sales.Orders o
ON c.CustomerID = o.CustomerId
GROUP BY c.CustomerName;
В этом запросе COUNT()
считает количество соответствующих ордеров. Может принимать значение 0
для клиентов без заказов.
Для этого запроса:
SELECT c.customername, COUNT(c.OrderID)
FROM Sales.Customers c LEFT JOIN
Sales.Orders o
ON c.CustomerID = o.CustomerID
GROUP BY c.CustomerName;
COUNT()
возвращает количество строк ,У каждого клиента есть хотя бы одна строка, поэтому значение никогда не будет 0
. Обычно вам нужен предыдущий запрос.