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

MySQL - ग्रुप बाय के साथ सशर्त COUNT

यदि droid_v केवल 0, 1, 2, 3, या 4 हो सकता है, तो COUNT(DISTINCT) कभी भी 5 से अधिक नहीं लौटाएगा, क्योंकि केवल पाँच संभावित मान हैं। क्या तुम यही चाहते हो? अगर ऐसा है, तो इसे आजमाएं:

SELECT puid, COUNT(DISTINCT CASE WHEN droid_v > 0 THEN droid_v ELSE 0 END) - 1 AS droid /* -1 for the case where droid_v is 0 */
     , COUNT(DISTINCT sig_v) AS sig
     , SUM(NoExt)  AS hits

अपडेट करें: ओह, क्षमा करें, उपरोक्त बिल्कुल सही नहीं है क्योंकि हो सकता है कि हो . न हो एक शून्य। यह होना चाहिए:

SELECT puid, COUNT(DISTINCT CASE WHEN droid_v > 0 THEN droid_v END) AS droid

अगर, दूसरी ओर, आप उन सभी पंक्तियों की गिनती चाहते हैं जहां droid_v> 0, तो मुझे लगता है कि आप यह चाहते हैं:

SELECT puid, SUM(CASE WHEN droid_v > 0 THEN 1 ELSE 0 END) AS droid
     , COUNT(DISTINCT sig_v) AS sig
     , SUM(NoExt)  AS hits

आशा है कि यह मदद करता है।



  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 को सिद्धांत क्वेरी बिल्डर में कनवर्ट करना। IF और CONCAT के साथ मुद्दे। या चयन पर उपश्रेणियों के लिए एक और दृष्टिकोण

  2. सीधे mySQL कमांड लाइन के माध्यम से छवि अपलोड करें

  3. MySQL में कल की तारीख कैसे प्राप्त करें

  4. यूयूआईडी को बाइनरी के रूप में सम्मिलित करना और चुनना(16)

  5. अनियंत्रित चेकबॉक्स अशक्त मान लौटा रहा है