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

एसक्यूएल ग्रुप बाय केस स्टेटमेंट कुल फ़ंक्शन के साथ

मेरा अनुमान है कि आप वास्तव में GROUP BY . नहीं करना चाहते हैं कुछ_उत्पाद।

इसका जवाब: "क्या GROUP BY करने का कोई तरीका है? इस मामले में एक कॉलम उपनाम जैसे some_product, या क्या मुझे इसे एक सबक्वायरी और उस पर समूह में रखने की आवश्यकता है?" है: आप GROUP BY नहीं कर सकते एक स्तंभ उपनाम।

SELECT क्लॉज, जहां कॉलम एलियास असाइन किए गए हैं, को GROUP BY . के बाद तक प्रोसेस नहीं किया जाता है खंड। समूहीकरण के लिए परिणाम उपलब्ध कराने के लिए इनलाइन व्यू या कॉमन टेबल एक्सप्रेशन (CTE) का उपयोग किया जा सकता है।

इनलाइन दृश्य:

select ...
from (select ... , CASE WHEN col1 > col2 THEN SUM(col3*col4) ELSE 0 END AS some_product
   from ...
   group by col1, col2 ... ) T
group by some_product ...

सीटीई:

with T as (select ... , CASE WHEN col1 > col2 THEN SUM(col3*col4) ELSE 0 END AS some_product
   from ...
   group by col1, col2 ... )
select ...
from T
group by some_product ... 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL उदाहरण) में 'time' को 'smalldatetime' में बदलें

  2. इसके लिए समाधान:स्टोर अपडेट, इंसर्ट, या डिलीट स्टेटमेंट ने अप्रत्याशित पंक्तियों की संख्या को प्रभावित किया (0)

  3. चुनिंदा वक्तव्य में मामला

  4. प्राथमिक कुंजी को अनदेखा करते हुए SQL सर्वर में डुप्लिकेट पंक्तियों को हटाने के 3 तरीके

  5. यदि पैरामीटर शून्य है तो SQL सभी का चयन करें अन्यथा विशिष्ट आइटम लौटाएं