A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/postgresql/postgresql-group-by-clause/ below:

PostgreSQL - GROUP BY clause

PostgreSQL - GROUP BY clause

Last Updated : 12 Jul, 2025

The GROUP BY clause in PostgreSQL is an essential tool that allows us to group rows that share the same values in one or more columns. This powerful functionality is commonly used to perform aggregate calculations such as SUM()COUNT()AVG(), and more, enabling us to summarize data efficiently.

In this article, we will explain the usage of the GROUP BY clause in PostgreSQL, explore practical examples, and understand how to effectively use it with aggregate functions.

What is PostgreSQL GROUP BY clause ?

The GROUP BY clause groups rows in a table based on the values of one or more specified columns. After grouping, aggregate functions such as SUM()COUNT(), and AVG() are applied to each group to calculate summary statistics. This allows us to generate more meaningful insights from our data. Whether we are analyzing sales transactions, counting occurrences, or calculating averages, the GROUP BY clause plays a key role in SQL queries.

Syntax

SELECT 
column_1,
column_2,
computing_function(column_3)
FROM
table_name
GROUP BY
column_1,
column_2;

Key Terms

Note: It is important to note that The GROUP BY clause must exactly appear after the FROM or WHERE clause. Additionally, any column that is not used in an aggregate function must appear in the GROUP BY clause.

Examples of the GROUP BY Clause in PostgreSQL

For the better understand of this article we will be using the sample DVD rental database, which is explained here and can be downloaded by clicking on this link in our examples. Let us take a look at some of the examples of the GROUP BY clause in PostgreSQL to better understand the concept.

Example 1: Grouping Data by Customer ID

Here we will query for data from the payment table and group the result by 'customer_id' from the "payment" table of our sample database. This query will return a list of unique customer IDs.

Query:

SELECT
customer_id
FROM
payment
GROUP BY
customer_id;

Output

Example 2: Calculating Total Amount Paid by Each Customer

Here we will query to get the amount that each customer has paid till date and use an aggregate function (ie SUM()), to do so and group them by 'customer_id' from the "payment" table of the sample database.

Query:

SELECT
customer_id,
SUM (amount)
FROM
payment
GROUP BY
customer_id;

Output

Example 3: Counting Payment Transactions Processed by Each Staff

In this example, we will count the number of payment transactions processed by each staff member. We will group the rows in the payment table based on 'staff_id' and use the COUNT() function to get the number of transactions. This query will return the number of transactions processed by each staff member.

Query:

SELECT
staff_id,
COUNT (payment_id)
FROM
payment
GROUP BY
staff_id;

Output

Important Points About GROUP BY clause in PostgreSQL Conclusion

The GROUP BY clause in PostgreSQL is a powerful feature for summarizing data based on one or more columns. By using aggregate functions like SUM(), COUNT(), and AVG(), we can perform essential data analysis within our SQL queries. Whether we are summarizing payments, counting transactions, or calculating averages, mastering the GROUP BY clause is essential for effective data analysis in PostgreSQL.



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4