Tenzij u T.Client
opneemt in uw GROUP BY
, kunt u dat veld alleen in een aggregatiefunctie opnemen. In uw geval verandert het groeperen op dat veld de logica, dus dat is uit (en is gerelateerd aan uw poging om te groeperen op basis van de CASE-instructie). Wikkel in plaats daarvan T.Client
in een geaggregeerde functie.
Op deze manier zijn je groepen nog steeds hetzelfde, en als er maar één rij is, volgens de test van je CASE-statement, weet je welk resultaat de aggregatiefunctie zal geven.
SELECT
T.Post,
ClientCount = COUNT(*) AS ClientCount,
Client = CASE COUNT(*) WHEN 1 THEN MAX(T.Client) ELSE '[Clients]' END
FROM
MyTable T
GROUP BY
T.Post