A menos que você inclua
T.Client
em seu GROUP BY
, você só pode incluir esse campo em uma função agregada. No seu caso, agrupar por esse campo altera a lógica, então isso está fora (e está relacionado à sua tentativa de agrupar pela instrução CASE). Em vez disso, envolva T.Client
em uma função agregada. Desta forma, seus grupos ainda são os mesmos, e quando há apenas uma linha, conforme o teste da sua instrução CASE, você sabe qual resultado a função agregada fornecerá.
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