Zadanie 5.

Policz, ile zamówień złożył każdy z klientów. Wynik ułóż od największej ilości zamówień.

Baza: Northwind, Tabele: dbo.Customers, dbo.Orders, Kolumny: CustomerID, CompanyName, OrderID, Wynik: 91 rows

8

Rozwiązanie

SELECT C.CustomerID, C.CompanyName, COUNT(O.OrderID) as Zamowienia
FROM dbo.Customers as C
LEFT JOIN dbo.Orders as O on C.CustomerID = O.CustomerID
GROUP BY C.CustomerID, C.CompanyName
ORDER BY Zamowienia DESC

— W funkcji COUNT() wstawiłam zliczanie po OrderID zamiast *, ponieważ * zlicza wszystkie wiersze, również z wartością NULL gdyby się jakieś pojawiły – a teoretycznie mogą, bo mamy złączenie lewostronne – więc wynik mógłby być przekłamany.

[collapse]