T.Client
を含めない限り GROUP BY
で 、集計関数内に含めることができるのはそのフィールドのみです。あなたの場合、そのフィールドでグループ化するとロジックが変更されるので、それは終わりです(そして、CASEステートメントでグループ化しようとする試みに関連しています)。代わりに、T.Client
をラップします 集計関数で。
このように、グループは同じままであり、CASEステートメントのテストによると、行が1つしかない場合は、集計関数がどのような結果をもたらすかがわかります。
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