Pokud nezahrnete T.Client
ve vašem GROUP BY
, můžete toto pole zahrnout pouze do agregační funkce. Ve vašem případě seskupení podle tohoto pole změní logiku, takže je to mimo (a souvisí s vaším pokusem o seskupení podle příkazu CASE). Místo toho zabalte T.Client
v agregační funkci.
Tímto způsobem jsou vaše skupiny stále stejné, a když existuje pouze jeden řádek, podle testu příkazu CASE víte, jaký výsledek dá agregační funkce.
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