जब तक आप T.Client
. शामिल नहीं करते आपके GROUP BY
. में , आप उस फ़ील्ड को केवल एक समग्र फ़ंक्शन में शामिल कर सकते हैं। आपके मामले में, उस क्षेत्र द्वारा समूहित करने से तर्क बदल जाता है, इसलिए यह समाप्त हो जाता है (और CASE कथन द्वारा समूहबद्ध करने के आपके प्रयास से संबंधित है)। इसके बजाय, T.Client
wrap को रैप करें एक समग्र समारोह में।
इस तरह आपके समूह अभी भी वही हैं, और जब आपके CASE कथन के परीक्षण के अनुसार केवल एक पंक्ति होती है, तो आप जानते हैं कि समग्र funciton क्या परिणाम देने वाला है।
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