在PostgreSQL(通常简称为PgSQL)中,GROUP BY
子句用于将查询结果按照一个或多个列进行分组
以下是一个使用GROUP BY
的基本示例:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE conditions
GROUP BY column1, column2;
这里的aggregate_function
是一个聚合函数,如COUNT()
, SUM()
, AVG()
, MIN()
或MAX()
等。GROUP BY
子句将根据column1
和column2
的值对结果进行分组,并对每个组应用聚合函数。
例如,假设我们有一个名为orders
的表,其中包含customer_id
(客户ID)、order_date
(订单日期)和amount
(金额)列。我们想要计算每个客户的总订单金额。我们可以使用以下查询:
SELECT customer_id, SUM(amount) as total_amount
FROM orders
GROUP BY customer_id;
这将返回一个结果集,其中每行包含一个客户ID和该客户的所有订单的总金额。
注意,当使用GROUP BY
时,SELECT子句中的非聚合列必须包含在GROUP BY
子句中。此外,GROUP BY
子句中的列必须存在于FROM子句中指定的表中。