Chyba że dołączysz T.Client
w Twojej GROUP BY
, możesz uwzględnić to pole tylko w funkcji agregującej. W twoim przypadku grupowanie według tego pola zmienia logikę, więc jest to nieaktualne (i jest powiązane z twoją próbą grupowania według instrukcji CASE). Zamiast tego zapakuj T.Client
w funkcji agregującej.
W ten sposób twoje grupy są nadal takie same, a gdy jest tylko jeden wiersz, zgodnie z testem twojego wyrażenia CASE, wiesz, jaki wynik da funkcja agregacji.
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