Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

एक एकल MySQL क्वेरी के भीतर बूलियन फ़ील्ड मानों की गणना करें?

<घंटा/>

एक ही क्वेरी में बूलियन फ़ील्ड मानों की गणना करने के लिए, आप CASE कथन का उपयोग कर सकते हैं। आइए अपने उदाहरण के लिए एक डेमो टेबल बनाएं -

mysql> टेबल काउंट बनाएंBooleanFieldDemo -> (-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentFirstName varchar(20), -> isPassed tinyint(1) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.63 सेकंड) 

इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।

क्वेरी इस प्रकार है -

mysql> countBooleanFieldDemo(StudentFirstName,isPassed) मान ('लैरी',0) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मान ('माइक', 1) में डालें;क्वेरी ओके, 1 पंक्ति प्रभावित (0.17 सेकंड)mysql> countBooleanFieldDemo(StudentFirstName,isPassed) value('Sam',0) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) mysql> countBooleanFieldDemo(StudentFirstName,isPassed) में डालें मान ('कैरोल', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों में डालें ('बॉब', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों ('डेविड', 1) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.13 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों में डालें ('रामित', 0); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.28 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों में डालें ('क्रिस', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) mysql> countBooleanF में डालें ieldDemo(StudentFirstName,isPassed) मान ('रॉबर्ट',1);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड)

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें।

क्वेरी इस प्रकार है -

mysql> countBooleanFieldDemo से *चुनें;

यहाँ आउटपुट है -

<पूर्व>+----------+---------------------+----------+| छात्र आईडी | स्टूडेंटफर्स्टनाम | पास है |+----------+---------------------+----------+| 1 | लैरी | 0 || 2 | माइक | 1 || 3 | सैम | 0 || 4 | कैरल | 1 || 5 | बॉब | 1 || 6 | डेविड | 1 || 7 | रामित | 0 || 8 | क्रिस | 1 || 9 | रॉबर्ट | 1 |+----------+---------------------+----------+9 पंक्तियाँ सेट में ( 0.00 सेकंड)

यहाँ एक ही क्वेरी के भीतर बूलियन फ़ील्ड मानों की गणना करने की क्वेरी है -

mysql> योग का चयन करें (isPassed=1) `True` के रूप में, योग(isPassed =0) `False` के रूप में, -> ( -> मामला जब sum(isPassed =1)> 0 तब sum(isPassed =0) / योग(isPassed =1) -> अंत -> ) TotalPercentage के रूप में -> countBooleanFieldDemo से;

निम्न आउटपुट है -

<पूर्व>+----------+----------+---------------------+| सच | झूठा | कुल प्रतिशत |+------+----------+-----------------+| 6 | 3 | 0.5000 |+------+----------+---------------------+1 पंक्ति सेट में (0.00 सेकंड)
  1. एकल MySQL क्वेरी में अलग-अलग तालिकाओं से NULL मानों की गणना न करें

    अलग-अलग तालिकाओं से मानों की गणना करने के लिए, वाक्य रचना इस प्रकार है - किसी भी AliasName1 के रूप में चुनें (अपनेTableName1 से गिनती (yourColumnName) का चयन करें, (अपनेTableName2 से गिनती(yourColumnName)) को किसी भीAliasName2 के रूप में चुनें;) आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प

  1. MySQL क्वेरी अल्पविराम की फ़ील्ड मान से गिनने के लिए?

    निम्नलिखित वाक्य रचना है - लंबाई चुनें(yourColumnName) - length(replace(yourColumnName, ,, )) as anyAliasName from yourTableName; आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (6.75 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1510 मान (90,97,101,190) में

  1. विशिष्ट स्तंभ मानों के लिए एकल MySQL क्वेरी में एकाधिक गणना प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ कुल फ़ंक्शन योग () का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1790 (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int);क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.94 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल मे