在PostgreSQL(通常简称为PgSQL)中,GROUP BY
子句用于将相似的数据行分组在一起,以便对每个组执行聚合函数
sales_data
的表,其中包含region
(地区)、product
(产品)和revenue
(收入)列:CREATE TABLE sales_data (
id SERIAL PRIMARY KEY,
region VARCHAR(50),
product VARCHAR(50),
revenue NUMERIC(10, 2)
);
INSERT INTO sales_data (region, product, revenue)
VALUES ('North America', 'Product A', 1000),
('North America', 'Product B', 2000),
('Europe', 'Product A', 1500),
('Europe', 'Product B', 1800),
('Asia', 'Product A', 2500),
('Asia', 'Product B', 2200);
GROUP BY
子句对数据进行分组和聚合计算。例如,按地区和产品对销售数据进行分组,并计算每个组的总收入:SELECT region, product, SUM(revenue) as total_revenue
FROM sales_data
GROUP BY region, product;
这将返回以下结果:
region | product | total_revenue
----------------+---------+---------------
North America | Product A | 1000.00
North America | Product B | 2000.00
Europe | Product A | 1500.00
Europe | Product B | 1800.00
Asia | Product A | 2500.00
Asia | Product B | 2200.00
在此示例中,我们使用了SUM()
聚合函数来计算每个组的总收入。除了SUM()
之外,还有许多其他聚合函数可用于PostgreSQL,如COUNT()
、AVG()
、MIN()
和MAX()
等。您可以根据需要选择适当的聚合函数来满足您的查询需求。