Es gibt eine Reihe von Ansätzen:
SELECT OfficeName, Total
FROM ( SELECT o.OfficeName, c.Total, MAX(Total) OVER() [MaxTotal]
FROM Offices o
LEFT JOIN
( SELECT OfficeID, COUNT(*) Total
FROM Customers
GROUP BY OfficeID
) c
ON o.OfficeID = c.OfficeID
WHERE o.ClusterID = 29
) c
WHERE Total = MaxTotal
ODER
WITH CTE AS
( SELECT o.OfficeName, c.Total
FROM Offices o
LEFT JOIN
( SELECT OfficeID, COUNT(*) Total
FROM Customers
GROUP BY OfficeID
) c
ON o.OfficeID = c.OfficeID
WHERE o.ClusterID = 29
)
SELECT *
FROM CTE
WHERE Total = (SELECT MAX(Total) FROM CTE)
ODER
SELECT TOP 1 o.OfficeName, c.Total
FROM Offices o
LEFT JOIN
( SELECT OfficeID, COUNT(*) Total
FROM Customers
GROUP BY OfficeID
) c
ON o.OfficeID = c.OfficeID
WHERE o.ClusterID = 29
ORDER BY Total DESC
Obwohl die Verwendung von TOP 1 möglicherweise nicht das ist, wonach Sie suchen, werden bei den anderen Methoden beide zurückgegeben, wenn es 2 Büros mit der gleichen Anzahl von Kunden gibt, während TOP 1 nur 1 davon zurückgibt (wahrscheinlich in der Reihenfolge des Büronamens). . Wenn Sie immer nur 1 Datensatz haben möchten, ist dies die beste Methode