GROUP BY के साथ VARCHAR कॉलम द्वारा समूहित औसत
जब एक संख्यात्मक कॉलम का औसत किसी VARCHAR कॉलम के अद्वितीय मानों के अनुसार चाहिए, तो GROUP BY varchar_column के साथ AVG(numeric_column) का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable(
Value INT,
Value2 VARCHAR(100)
);
Query OK, 0 rows affected (0.84 sec)
mysql> INSERT INTO DemoTable VALUES(10,'999.999.999.999'); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO DemoTable VALUES(20,'888.888.888.888'); Query OK, 1 row affected (0.14 sec) mysql> INSERT INTO DemoTable VALUES(30,'999.999.999.999'); Query OK, 1 row affected (0.09 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+-------+-----------------+ | Value | Value2 | +-------+-----------------+ | 10 | 999.999.999.999 | | 20 | 888.888.888.888 | | 30 | 999.999.999.999 | +-------+-----------------+ 3 rows in set (0.00 sec)
VARCHAR मान के अनुसार औसत
mysql> SELECT Value2, AVG(Value) FROM DemoTable GROUP BY Value2;
परिणाम:
+-----------------+------------+ | Value2 | avg(Value) | +-----------------+------------+ | 999.999.999.999 | 20.0000 | | 888.888.888.888 | 20.0000 | +-----------------+------------+ 2 rows in set (0.06 sec)
गणना: '999.999.999.999' के लिए Value: 10 और 30 → औसत 20। '888.888.888.888' के लिए Value: 20 → औसत 20। GROUP BY VARCHAR कॉलम पर पूरी तरह से काम करता है।