- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Can we exclude entries with “0” while using MySQL AVG function?
To exclude entries with “0”, you need to use NULLIF() with function AVG().
The syntax is as follows
SELECT AVG(NULLIF(yourColumnName, 0)) AS anyAliasName FROM yourTableName;
Let us first create a table
mysql> create table AverageDemo - > ( - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > StudentName varchar(20), - > StudentMarks int - > ); Query OK, 0 rows affected (0.72 sec)
Insert some records in the table using insert command.
The query is as follows
mysql> insert into AverageDemo(StudentName,StudentMarks) values('Adam',NULL); Query OK, 1 row affected (0.12 sec) mysql> insert into AverageDemo(StudentName,StudentMarks) values('Larry',23); Query OK, 1 row affected (0.19 sec) mysql> insert into AverageDemo(StudentName,StudentMarks) values('Mike',0); Query OK, 1 row affected (0.20 sec) mysql> insert into AverageDemo(StudentName,StudentMarks) values('Sam',45); Query OK, 1 row affected (0.18 sec) mysql> insert into AverageDemo(StudentName,StudentMarks) values('Bob',0); Query OK, 1 row affected (0.12 sec) mysql> insert into AverageDemo(StudentName,StudentMarks) values('David',32); Query OK, 1 row affected (0.18 sec)
Display all records from the table using select statement.
The query is as follows
mysql> select *from AverageDemo;
The following is the output
+----+-------------+--------------+ | Id | StudentName | StudentMarks | +----+-------------+--------------+ | 1 | Adam | NULL | | 2 | Larry | 23 | | 3 | Mike | 0 | | 4 | Sam | 45 | | 5 | Bob | 0 | | 6 | David | 32 | +----+-------------+--------------+ 6 rows in set (0.00 sec)
The following is the query to exclude entries with “0” while using AVG
mysql> select AVG(nullif(StudentMarks, 0)) AS Exclude0Avg from AverageDemo;
The following is the output
+-------------+ | Exclude0Avg | +-------------+ | 33.3333 | +-------------+ 1 row in set (0.05 sec)
Advertisements