Возьми этот запрос:Как COUNT (*) ведет внутреннее соединение
SELECT c.CustomerID, c.AccountNumber, COUNT(*) AS CountOfOrders,
SUM(s.TotalDue) AS SumOfTotalDue
FROM Sales.Customer AS c
INNER JOIN Sales.SalesOrderheader AS s ON c.CustomerID = s.CustomerID
GROUP BY c.CustomerID, c.AccountNumber
ORDER BY c.CustomerID;
Я ожидал, что COUNT (*) для подсчета строк в Sales.Customer, но к моему удивлению, он подсчитывает количество строк в объединенный стол.
Любая идея, почему это так? Кроме того, есть ли способ быть явным в определении того, для какой таблицы должен работать COUNT()?
он будет считать все строки из результата объединения. Может быть, вы хотите 'COUNT (DISTINCT c.CustomerID)' –
Ahhh im с вами. Результатом объединения является новая таблица! Получил это сейчас! –