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

MySQL:नल के साथ औसत

SQL में कुल कार्य (SUM, AVG, COUNT, आदि) हमेशा स्वचालित रूप से NULL को बाहर कर देते हैं।

तो SUM(col) / COUNT(col) =AVG(col) - यह बढ़िया और सुसंगत है।

COUNT(*) का विशेष मामला प्रत्येक पंक्ति की गणना करता है।

यदि आप NULLs के साथ एक एक्सप्रेशन बनाते हैं:A + B जहां या तो A या B NULL है, तो A + B NULL होगा, भले ही अन्य कॉलम NULL हो।

जब एनयूएलएल होते हैं, सामान्य रूप से, एवीजी (ए + बी) <> एवीजी (ए) + एवीजी (बी), और उनके पास अलग-अलग भाजक भी होंगे। आपको कॉलम को लपेटना होगा:AVG(COALESCE(A, 0) + COALESCE(B, 0)) इसे हल करने के लिए, लेकिन शायद उस मामले को भी बाहर कर दें जहां COALESCE(A, 0) + COALESCE(B, 0).

आपके कोड के आधार पर, मैं सुझाव दूंगा:

select avg(coalesce(col1, 0) + coalesce(col2, 0)), count(col3) from table1
where coalesce(col1, col2) is not null -- double nulls are eliminated
group by SomeArbitraryCol
having avg(coalesce(col1, 0) + coalesce(col2, 0)) < 500 and count(col3) > 3
order by avg(coalesce(col1, 0) + coalesce(col2, 0)) asc;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पायथन MySQL कनेक्टर - फ़ेचोन का उपयोग करते समय अपठित परिणाम मिला

  2. मुझे MySQL के बजाय MySQLi का उपयोग कब करना चाहिए?

  3. एक mysql डेटाबेस में एक बहु-आयामी php सरणी सम्मिलित करना

  4. MySQL पर Django में कॉलम के लिए डेटा बहुत लंबा है

  5. MySQL ऑर्डर द्वारा [कस्टम सेट फ़ील्ड मान]