A menos que incluya T.Client
en tu GROUP BY
, solo puede incluir ese campo dentro de una función agregada. En su caso, agrupar por ese campo cambia la lógica, por lo que está fuera (y está relacionado con su intento de agrupar por la instrucción CASE). En su lugar, envuelva T.Client
en una función agregada.
De esta manera, sus grupos siguen siendo los mismos, y cuando solo hay una fila, según la prueba de su instrucción CASE, sabe qué resultado dará la función agregada.
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