PostgreSQL GROUP BY Clause
GROUP BY clause groups rows that have the same values into summary rows,
like "find the number of customers in each country".
GROUP BY clause is often used with aggregate functions like
AVG() to group the result-set by one or more columns.
Lists the number of customers in each country:
GROUP BY country;
GROUP BY With JOIN
The following SQL statement lists the number of orders made by each customer:
LEFT JOIN customers ON orders.customer_id = customers.customer_id
GROUP BY customer_name;