Skip to main content
Documents
Basic SyntaxMath FunctionsDate FunctionsJSON FunctionsDatabasesTables & Schema ManagementString FunctionsTriggersIndexes

PostgreSQL COUNT

The `COUNT` function in PostgreSQL is used to return the number of input rows that match a specific condition of a query. It is commonly utilized in `SELECT` statements to provide a count of rows in a table or the number of unique values in a column.

Usage

The `COUNT` function determines the number of rows that meet certain criteria or count the number of values in a column. It can be applied to all rows, distinct column values, or specific conditions.

SELECT COUNT(column_name)
FROM table_name
[WHERE condition];

In this syntax, `COUNT(column_name)` counts the number of non-null values in the specified column, while `COUNT(*)` counts all rows, including those with null values.

Examples

1. Basic Count of All Rows

SELECT COUNT(*)
FROM orders;

This example returns the total number of rows in the `orders` table, including those with null values.

2. Count Non-Null Values in a Column

SELECT COUNT(customer_id)
FROM orders;

Here, the `COUNT` function returns the number of non-null entries in the `customer_id` column from the `orders` table.

3. Count with a Condition

SELECT COUNT(*)
FROM orders
WHERE order_status = 'completed';

This example counts only the rows where the `order_status` is `'completed'`, providing insights into specific subsets of data.

4. Count Unique Non-Null Values in a Column

SELECT COUNT(DISTINCT customer_id)
FROM orders;

This example counts distinct non-null values in the `customer_id` column, identifying unique customer entries.

Tips and Best Practices

  • Use `COUNT(*)` to count all rows. This includes rows with null values and is efficient for total row counts.
  • Use `COUNT(column_name)` to ignore nulls. This counts non-null entries in a specific column, useful for finding how many valid entries exist.
  • Combine with `WHERE` for filtered counts. Apply conditions to narrow down the count result to specific criteria.
  • Use `COUNT(DISTINCT column_name)` for unique non-null counts. This ensures the count of distinct values, beneficial for identifying unique entries.
  • Consider performance impacts. For large datasets, optimize queries by using indexes or restructuring queries to improve performance of `COUNT` operations.