কম্পিউটার টিউটোরিয়াল

MySQL AVG ফাংশনে ০ বাদ দেওয়ার পদ্ধতি

MySQL-এ গড় (average) বের করার সময় ০ মান বাদ দিতে NULLIF() ফাংশন AVG()-এর সাথে ব্যবহার করতে হয়।

সিনট্যাক্স

SELECT AVG(NULLIF(yourColumnName, 0)) AS anyAliasName FROM yourTableName;

উদাহরণ

টেবিল তৈরি:

mysql> CREATE TABLE AverageDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20),
    -> StudentMarks INT
    -> );

ডেটা ইনসার্ট (কয়েকটি ০ সহ):

mysql> INSERT INTO AverageDemo(StudentName, StudentMarks) VALUES('Adam', NULL);
mysql> INSERT INTO AverageDemo(StudentName, StudentMarks) VALUES('Larry', 23);
mysql> INSERT INTO AverageDemo(StudentName, StudentMarks) VALUES('Mike', 0);
mysql> INSERT INTO AverageDemo(StudentName, StudentMarks) VALUES('Sam', 45);
mysql> INSERT INTO AverageDemo(StudentName, StudentMarks) VALUES('Bob', 0);
mysql> INSERT INTO AverageDemo(StudentName, StudentMarks) VALUES('David', 32);

সকল রেকর্ড:

mysql> SELECT * FROM AverageDemo;
+----+-------------+--------------+
| Id | StudentName | StudentMarks |
+----+-------------+--------------+
|  1 | Adam        | NULL         |
|  2 | Larry       | 23           |
|  3 | Mike        | 0            |
|  4 | Sam         | 45           |
|  5 | Bob         | 0            |
|  6 | David       | 32           |
+----+-------------+--------------+

০ বাদ দিয়ে গড়:

mysql> SELECT AVG(NULLIF(StudentMarks, 0)) AS Exclude0Avg FROM AverageDemo;
+-------------+
| Exclude0Avg |
+-------------+
| 33.3333     |
+-------------+

ব্যাখ্যা: NULLIF(StudentMarks, 0) হলে ০ হলে NULL রিটার্ন করে। AVG() NULL মান গড়ে অন্তর্ভুক্ত করে না। সুতরাং ০ এবং NULL দুটোই বাদ পড়ে। শুধু ২৩, ৪৫, ৩২ - এই তিনটি মান দিয়ে গড় হয়ে ৩৩.৩৩৩৩।

  1. MySQL IN() ফাংশন কলামের নাম দিয়ে তুলনা করে আউটপুট পেতে কীভাবে ব্যবহার করবেন?

  2. MySQL INTERVAL() ফাংশন টেবিলের একটি কলামের সাথে কীভাবে ব্যবহার করবেন?

  3. MySQL-এ SUM() এবং IF() একসাথে ব্যবহার করা যায় কিনা?

  4. Apache-এ MySQL ব্যবহার (Using MySQL with Apache)