SQL SELECT COUNT() (original) (raw)

Last Updated : 23 Jul, 2025

In SQL, the **SELECT statement is a fundamental tool for retrieving data from a **database. When paired with the **COUNT() function, it becomes even more powerful, enabling efficient **data aggregation and **analysis. This article provides a detailed explanation of **SELECT and **COUNT() in SQL, including syntax, examples, and practical use cases. Whether we’re filtering rows, counting **non-NULL values, or analyzing **distinct entries, this article will help us master these essential SQL techniques.

What is SELECT in SQL?

The SELECT statement is used to retrieve **specific columns or **rows from a table based on **defined conditions. It serves as the foundation of most SQL queries, allowing users to **extract and **filter data for analysis. Using select statements we can also apply filters using different clauses like **where, **Group By, **Having, etc.

**Syntax

SELECT <COLUMN_NAME>

FROM <TABLE_NAME>

WHERE ;

**What is COUNT() in SQL?

The **COUNT() function is an aggregate function used to count the number of rows available in a table or the number of rows that match condition criteria. It can count:

**Syntax

SELECT COUNT(column_name)

FROM <TABLE_NAME>

WHERE ;

Examples of SELECT with COUNT

To demonstrate the use of **SELECT with **COUNT, we will work with a sample table named **Employee.

Step 1: Create the Employee Table

CREATE TABLE Employee (
Emp_ID INT PRIMARY KEY,
Emp_Name VARCHAR(50),
Phone_No VARCHAR(15),
Email VARCHAR(100),
Salary INT
);

Step 2: Insert Data into the Employee Table

INSERT INTO Employee (Emp_ID, Emp_Name, Phone_No, Email, Salary) VALUES
(100, 'Ram', '000000', 'ram@gmail.com', 10000),
(101, 'Shyam', '11111111', 'shyam@gmail.com', 12000),
(102, 'Mohan', '22222', NULL, 10000),
(103, 'Sohan', NULL, 'sohan@gmail.com', 15000),
(104, 'Rakesh', '44444', NULL, 18000),
(105, 'Suresh', '55555', NULL, 16000),
(106, 'Mukesh', NULL, 'mukesh@gmail.com', 17000),
(107, 'Mina', '77777', NULL, 20000);

Step 3: View the Employee Table

SELECT * FROM Employee;

**Output

Emp_id Emp_Name Phone_no Email Salary
100 Ram 000000 ram@gmail,co 10000
101 Shyam 11111111 shyam@gmail.com 12000
102 Mohan 22222 - 10000
103 Sohan - sohan@gmail.com 15000
104 Rakesh 44444 - 18000
105 Suresh 55555 - 16000
106 Mukesh - mulesk@gmail.com 17000
107 mina 77777 - 20000

**Example 1: Count Total Rows in a Table

In this example, we apply the count function on the **Emp_id column to count all rows in the **Employee table which returns the number of rows that are not null

**Query:

SELECT COUNT(Emp_id) FROM EMPLOYEE

**Output

COUNT(Emp_id)
8

**Example 2: Use, of AS keyword with Count

In this example, the **AS keyword is used to assign a custom alias, Number_of_Employee, to the output column of the **COUNT() function. This improves the readability of the result by giving a meaningful **header name to the count of **employee IDs.

**Query:

SELECT COUNT (Emp_id) AS Number_of_Employee FROM EMPLOYEE

**Output

Number_of_Employee
8

**Example 3: Count Non-NULL Values in a Column

In this example, the **COUNT() function is applied to the **Phone_No**column to count rows that are **not NULL. This helps determine how many employees have a phone number recorded in the **database.

**Query:

SELECT COUNT(Phone) AS Number_Available FROM EMPLOYEE

**Output

Number_Available
6

**Example 4: Count Rows Based on a Condition

In this example, we will count the number of employees whose salary is **more than and equal to 15000

**Query:

SELECT COUNT(Salary) AS SALARY
FROM EMPLOYEE
WHERE SALARY >=15000

**Output

SALARY
5

**Example 5: Count Rows Using a Subquery

In this example, a subquery is used within the WHERE clause to calculate the average salary using the **AVG() function. The main query then counts the number of employees whose salary is greater than this average, using the **COUNT(*) function

**Query:

SELECT COUNT(*) AS Above_Average_Salary
FROM Employee
WHERE Salary > (SELECT AVG(Salary) FROM Employee);

**Output

Above_Average_Salary
3

**Example 6: Count with Distinct

In this example, the DISTINCT keyword ensures that only unique (non-duplicate) values in the**Salary** column are counted. This is useful for identifying the number of distinct **salary amounts in the dataset.

**Query:

SELECT COUNT(DISTINCT Salary) AS Distinct_Salary FROM EMPLOYEE;

**Output

Distinct_Salary
7

Conclusion

The SELECT statement in **SQL is a **flexible and **essential tool for **retrieving and **manipulating data from the **database. When we use the **COUNT() function with Select, it becomes more powerful, allowing us to perform data analysis and obtain valuable required data. The **COUNT() function can also handle null values while counting rows and finding distinct values from the column. Mastering these functions will significantly improve our ability to work with databases and perform **complex data analysis.