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

MySQL में AVG() फ़ंक्शन का उपयोग करके डेटाबेस पंक्तियों में औसत मान गणना करें

MySQL में AVG() फ़ंक्शन का उपयोग करके स्तंभ औसत गणना करना

MySQL का AVG() एग्रीगेट फ़ंक्शन एक संख्यात्मक कॉलम के सभी गैर-NULL मानों का अंकगणितीय औसत (मतलब) गणना करता है। यह एकल क्वेरी में एकाधिक कॉलम्स पर लागू किया जा सकता है।

सिंटैक्स

SELECT 
    AVG(yourColumnName1) AS alias1,
    AVG(yourColumnName2) AS alias2,
    ...
FROM yourTableName;

टेबल बनाना

mysql> CREATE TABLE demo31 (
    -> value1 INT,
    -> value2 INT,
    -> value3 INT
    -> );
Query OK, 0 rows affected (2.27 sec)

डेटा डालना

mysql> INSERT INTO demo31 VALUES (34, 55, 67);
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO demo31 VALUES (50, 60, 70);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO demo31 VALUES (100, 200, 300);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO demo31 VALUES (10, 300, 200);
Query OK, 1 row affected (0.15 sec)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM demo31;
+--------+--------+--------+
| value1 | value2 | value3 |
+--------+--------+--------+
|     34 |     55 |     67 |
|     50 |     60 |     70 |
|    100 |    200 |    300 |
|     10 |    300 |    200 |
+--------+--------+--------+
4 rows in set (0.00 sec)

सभी तीन कॉलम्स के लिए औसत गणना करने का क्वेरी

mysql> SELECT 
    -> AVG(value1) AS Value1_AVG,
    -> AVG(value2) AS Value2_AVG,
    -> AVG(value3) AS Value3_AVG
    -> FROM demo31;

परिणाम

+------------+------------+------------+
| Value1_AVG | Value2_AVG | Value3_AVG |
+------------+------------+------------+
|    48.5000 |   153.7500 |   159.2500 |
+------------+------------+------------+
1 row in set (0.00 sec)

मैन्युअल सत्यापन

कॉलममानयोगगिनतीऔसत
value134, 50, 100, 10194448.5
value255, 60, 200, 3006154153.75
value367, 70, 300, 2006374159.25

AVG() महत्वपूर्ण व्यवहार

  • NULL मानों को अनदेखा करता है: केवल गैर-NULL मानों पर औसत गणना करता है
  • दशमलव लौटाता है: पूर्णांक कॉलम के लिए भी DECIMAL लौटाता है
  • खाली सेट: कोई पंक्ति नहीं या सभी NULL होने पर NULL लौटाता है

NULL संचालन उदाहरण

mysql> SELECT AVG(col) FROM (SELECT 10 AS col UNION SELECT NULL UNION SELECT 20) t;
-- परिणाम: 15 (केवल 10 और 20 का औसत, NULL अनदेखा)

GROUP BY के साथ औसत

SELECT Department, AVG(Salary) AS AvgSalary
FROM Employees
GROUP BY Department;

सशर्त औसत

-- केवल उच्च वेतन का औसत
SELECT AVG(CASE WHEN Salary > 50000 THEN Salary END) AS AvgHighSalary
FROM Employees;

-- या FILTER क्लॉज (MySQL 8.0+ समर्थित नहीं, PostgreSQL में)
-- MySQL विकल्प:
SELECT AVG(IF(Salary > 50000, Salary, NULL)) FROM Employees;

भारित औसत

SELECT SUM(value * weight) / SUM(weight) AS WeightedAvg
FROM Data;

चलती औसत (विंडो फ़ंक्शन, MySQL 8.0+)

SELECT 
    Date,
    Value,
    AVG(Value) OVER (ORDER BY Date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS MovingAvg7Day
FROM TimeSeriesData;

सर्वोत्तम अभ्यास

  1. NULL मानों को स्पष्ट रूप से संभालें यदि वे सार्थक हैं
  2. बड़े डेटासेट के लिए, इंडेक्स्ड कॉलम्स पर औसत पर विचार करें
  3. परिशुद्धता आवश्यकताओं के लिए DECIMAL परिशुद्धता/स्केल जांचें
  4. आउटलेयर्स के लिए MEDIAN (MySQL में PERCENTILE_CONT के माध्यम से) पर विचार करें
  1. MySQL डेटाबेस का बैकअप कैसे लें MySQL डेटाबेस का बैकअप कैसे लें

    MySQL एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। यह डेटाबेस निर्देशों को संभालता है और एक ही समय में कई डेटाबेस को प्रबंधित कर सकता है। उदाहरण के लिए, यदि आप एक नया डेटाबेस बनाना चाहते हैं या किसी मौजूदा डेटाबेस में डेटा जोड़ना चाहते हैं, तो आप MySQL सर्वर को एक संदेश भेजते हैं, उसे वह डेटा दे

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर

  1. MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है? MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है?

    हम इसे DATABASE() मेथड की मदद से DUAL से चेक कर सकते हैं। मान लीजिए, हम डेटाबेस business का उपयोग कर रहे हैं। क्वेरी निम्न है − mysql> USE business; Database changed अब हम DATABASE() को DUAL से चेक कर सकते हैं कि कौन सा डेटाबेस चुना गया है। क्वेरी निम्न है − mysql> SELECT DATA