PostgreSQL – GROUP BY 子句
PostgreSQL GROUP BY 子句用于将 SELECT 语句返回的行划分为不同的组。 GROUP BY 子句的特点是可以使用SUM()
类的函数来计算项目的总和,或者使用COUNT()
来获取组中项目的总数。
Syntax:
SELECT
column_1,
column_2,
computing_function(column_3)
FROM
table_name
GROUP BY
column_1,
column_2;
需要注意的是 GROUP BY 子句必须完全出现在 FROM 或 WHERE 子句之后。
在本文中,我们将使用示例 DVD 租赁数据库,此处进行了说明,可以通过单击示例中的此链接进行下载。
示例 1:
在这里,我们将从支付表中查询数据,并根据示例数据库的“支付”表中的客户 ID 对结果进行分组。
SELECT
customer_id
FROM
payment
GROUP BY
customer_id;
输出:
示例 2:
在这里,我们将查询以获取每个客户迄今为止支付的金额,并使用聚合函数(即 SUM())来执行此操作,并根据示例数据库的“payment”表中的 customer_id 将它们分组。
SELECT
customer_id,
SUM (amount)
FROM
payment
GROUP BY
customer_id;
输出:
示例 3:
在这里,我们将进行查询以计算每个员工已经处理的支付交易数量,您根据员工 ID 对支付表中的行进行分组,并使用 COUNT()函数获取交易数量。
SELECT
staff_id,
COUNT (payment_id)
FROM
payment
GROUP BY
staff_id;
输出: