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

योग, औसत, अधिकतम, न्यूनतम, NULL मानों की संख्या

यह एक अच्छा प्रश्न है, और जिसका कोई अच्छा उत्तर नहीं है। NULL . का उपचार आपके दो उदाहरणों में अलग है।

मूलभूत समस्या यह है कि NULL साधन। आमतौर पर, इसका उपयोग गायब को दर्शाने के लिए किया जाता है मूल्य। हालांकि, एएनएसआई मानक में, यह एक अज्ञात . के लिए खड़ा है मूल्य। मुझे यकीन है कि दार्शनिक "लापता" और "अज्ञात" के बीच अंतर करने के लिए टॉम्स समर्पित कर सकते हैं।

एक साधारण अभिव्यक्ति (बूलियन या अंकगणित या किसी अन्य प्रकार के स्केलर) में, एएनएसआई लगभग सभी मामलों में "अज्ञात" के परिणाम को परिभाषित करता है जहां कोई भी ऑपरेंड "अज्ञात" होता है। कुछ अपवाद हैं:NULL AND FALSE गलत है और NULL IS NULL सच है, लेकिन ये दुर्लभ हैं।

एग्रीगेशन ऑपरेशंस के लिए, SUM() के बारे में सोचें जैसे "सभी ज्ञात मानों का योग", और इसी तरह। SUM() व्यवहार करता है NULL + . से अलग मान . लेकिन, यह व्यवहार भी मानक है, इसलिए सभी डेटाबेस इसी तरह काम करते हैं।

यदि आप एक NULL चाहते हैं समेकन के लिए मान जब कोई भी इसके ऑपरेंड का NULL है , तो आपको CASE . का उपयोग करना होगा . मुझे लगता है कि एक कॉलम के लिए सबसे आसान तरीका है:

(CASE WHEN COUNT(col) = COUNT(*) THEN SUM(COL) END)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैसकल में रो लेवल लॉकिंग

  2. Nginx - निष्पादित करने के बजाय PHP डाउनलोड करना

  3. MySQL होस्ट '::1' या '127.0.0.1' को इस MySQL सर्वर से कनेक्ट करने की अनुमति नहीं है

  4. MYSQL - एक अनुरोध में पेरिस टाइमज़ोन पर अभी () और एक तिथि की तुलना करें

  5. सीक्वेलाइज़ और MySQL के साथ पासपोर्ट का उपयोग करना