Освен ако не включите T.Client
във вашия GROUP BY
, можете да включите това поле само в рамките на агрегатна функция. Във вашия случай групирането по това поле променя логиката, така че това е изключено (и е свързано с опита ви да групирате по израза CASE). Вместо това обвийте T.Client
в агрегатна функция.
По този начин вашите групи са все същите и когато има само един ред, според теста на вашия оператор CASE, вие знаете какъв резултат ще даде агрегатната функция.
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