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

MySQL में SUM() फंक्शन के परिणाम का WHERE क्लॉज में उपयोग: HAVING क्लॉज का उपयोग करें

MySQL WHERE vs HAVING: एग्रीगेट फंक्शन के परिणाम पर फ़िल्टर

WHERE क्लॉज पंक्तियों को समूहित करने पहले फ़िल्टर करता है, इसलिए इसमें एग्रीगेट फंक्शन (SUM, COUNT, AVG, आदि) उपयोग नहीं कर सकते। एग्रीगेट परिणाम पर फ़िल्टर के लिए HAVING क्लॉज का उपयोग करें।

उदाहरण: कुल कीमत 40 से अधिक वाले नाम

टेबल बनाएं:

CREATE TABLE DemoTable (Name VARCHAR(50), Price INT);
INSERT INTO DemoTable VALUES ('Chris', 30), ('David', 40), ('Chris', 10), ('Mike', 44), ('David', 5);

डेटा:

+-------+-------+
| Name  | Price |
+-------+-------+
| Chris | 30    |
| David | 40    |
| Chris | 10    |
| Mike  | 44    |
| David | 5     |
+-------+-------+

गलत: WHERE में SUM()

SELECT Name, SUM(Price) AS Total_Price 
FROM DemoTable 
GROUP BY Name 
HAVING Total_Price > 40;

परिणाम:

+-------+-------------+
| Name  | Total_Price |
+-------+-------------+
| David | 45          |
| Mike  | 44          |
+-------+-------------+

क्रियान्वयन क्रम

  1. FROM — टेबल चुनें
  2. WHERE — पंक्तियों को फ़िल्टर करें (एग्रीगेट से पहले)
  3. GROUP BY — पंक्तियों को समूहित करें
  4. HAVING — समूहों को फ़िल्टर करें (एग्रीगेट के बाद)
  5. SELECT — कॉलम चुनें
  6. ORDER BY — सॉर्ट करें
  7. LIMIT — सीमित करें

WHERE और HAVING दोनों उपयोग करें


            
  1. - MySQL SUM() फंक्शन को GROUP BY क्लॉज के साथ उपयोग करने का लाभ क्या है?

    जब हम MySQL SUM() फंक्शन का उपयोग GROUP BY क्लॉज के साथ करते हैं तो SUM() फंक्शन GROUP BY क्लॉज में निर्दिष्ट प्रत्येक समूह के लिए योग का मूल्यांकन करता है। SUM() को GROUP BY क्लॉज के साथ उपयोग करने का लाभ यह है कि हम किसी विशेष समूह का कुल आसानी से पता लगा सकते हैं। उपरोक्त अवधारणा को समझने के लिए

  1. - क्या MySQL में SUM() के साथ IF() उपयोग कर सकते हैं?

    हां, MySQL में SUM() के साथ IF() फ़ंक्शन का उपयोग करके आप सशर्त गिनती या योग गणना कर सकते हैं। यह पिवट टेबल, सशर्त एग्रीगेशन, और क्रॉस-टैब रिपोर्ट के लिए शक्तिशाली तकनीक है। उदाहरण तालिका बनाना CREATE TABLE DemoTable (Value INT, Value2 INT); डेटा डालना INSERT INTO DemoTable VALUES (100, 400), (1

  1. - MySQL में CASE WHEN स्टेटमेंट के अंदर WHERE क्लॉज का उपयोग

    CASE WHEN में शर्तों का उपयोग (WHERE नहीं) MySQL में CASE स्टेटमेंट के अंदर WHERE क्लॉज सीधे उपयोग नहीं किया जा सकता। इसके बजाय CASE WHEN condition THEN ... सिंटैक्स का उपयोग करें जहां शर्तें बूलियन अभिव्यक्तियां होती हैं। टेबल और डेटा CREATE TABLE DemoTable1040 ( Value1 INT, Value2 INT,