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

शून्य या शून्य मानों को अनदेखा करते हुए AVG प्राप्त करें

NULL पहले ही अनदेखा कर दिया गया है ताकि आप NULLIF का उपयोग कर सकें 0 . को चालू करने के लिए करने के लिए NULL . इसके अलावा आपको DISTINCT . की आवश्यकता नहीं है और आपका WHERE पर ActualTime सारगर्भित नहीं है।

SELECT AVG(cast(NULLIF(a.SecurityW, 0) AS BIGINT)) AS Average1,
       AVG(cast(NULLIF(a.TransferW, 0) AS BIGINT)) AS Average2,
       AVG(cast(NULLIF(a.StaffW, 0) AS BIGINT))    AS Average3
FROM   Table1 a
WHERE  a.ActualTime >= '20130401'
       AND a.ActualTime < '20130501' 

पीएस मुझे नहीं पता कि Table2 b . क्या है मूल प्रश्न में है क्योंकि इसमें शामिल होने की कोई शर्त नहीं है इसलिए इसे मेरे उत्तर से हटा दिया गया है।



  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 सर्वर इंस्टेंस के बीच हमेशा उपलब्धता समूह को समझना। भाग 1

  2. मैं SQL सर्वर के साथ INNER JOIN का उपयोग करके कैसे हटा सकता हूं?

  3. एक कंप्यूटेड कॉलम बनाएं जो SQL सर्वर में किसी अन्य तालिका से डेटा का उपयोग करता है

  4. CAST(DATETIME AS DATE) WHERE क्लॉज पर

  5. SQL सर्वर डेटाबेस में अद्वितीय बाधा स्क्रिप्ट कैसे उत्पन्न करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 99