Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

ग्रुप बाय क्लॉज की सूची के अनुसार ग्रुप के लिए इस्तेमाल किए गए एक्सप्रेशन में एग्रीगेट या सबक्वेरी का इस्तेमाल नहीं किया जा सकता

जब तक आप 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या लिंक से एसक्यूएल के साथ SqlGeography का उपयोग करना संभव है?

  2. मैं SQL सर्वर में किसी XML मान से तत्व नामों की सूची कैसे प्राप्त कर सकता हूं?

  3. SQL सर्वर ROWCOUNT_BIG ()

  4. SQL सर्वर में एक पूर्णांक को दशमलव में कैसे बदलें

  5. कॉलम द्वारा समूह और एकाधिक पंक्तियों को एक पंक्ति एकाधिक कॉलम में समूहित करें